Este estudo é uma análise estatística sobre o projeto Meninas na Computação, coordenado pela professora Dra. Maristela Terto e Holanda et al.

respostas <- read_excel("raw.xlsx", sheet = "unificado", na = "")
respostas$Q1 <- NULL
respostas$Q2 <- NULL
respostas$Serie <- stringr::str_trim(respostas$Serie, side = "both")
respostas <- as.data.frame(lapply(respostas, as.factor))
opcao <- data.frame(Fara_Computacao = levels(respostas$Fara_Computacao), opcao_computacao = c(1, 2, 3))
respostas <- merge(respostas, opcao)
respostas <- respostas[, c(37, 1:36)]

Durante os anos de 2011 a 2014, foram entrevistados 3589 alunos do nível fundamental, médio e superior, sobre o curso superior que pretendiam seguir.

O questionário possui 14 questões que foram desmembradas em 36 variáveis.

O primeiro passo do estudo foi recuperar as respostas dos questionários.

O segundo passo envolveu a preparação dos dados. Em primeiro lugar, os questionários foram unificados em uma única tabela, a fim de facilitar a manipulação.

Como o estudo consiste em identificar as motivações das alunas entrevistadas em seguir ou não uma carreira em Ciência da Computação, foram retirados os 0 entrevistados de sexo masculino.

respostas <- subset(respostas, respostas$Sexo == "F")
respostas$Sexo <- NULL

São encontradas as seguintes distribuições de série na amostra:

series <- aggregate(x = list(Quantidade = respostas$Serie), by = list(Ano = respostas$Ano, Serie = respostas$Serie), FUN=length)
por_ano <- aggregate(x = list(Total = respostas$Serie), by = list(Ano = respostas$Ano), FUN=length)
series <- merge(series, por_ano)
series$Percentual <- series$Quantidade * 100 / series$Total
p = ggplot(data = series, aes(x = "", y = Percentual, fill = Serie))  
p = p + geom_bar(width = 1, stat = "identity")
p = p + facet_grid(facets = . ~ Ano)
p = p + coord_polar(theta = "y", start = 0) 
p = p + scale_x_discrete()
p = p + xlab("") + ylab("") + labs(fill="Ano") 
p = p + ggtitle("Percentual de Entrevistadas por Série em cada Ano")
p

As alunas responderam da seguinte forma sobre a área que gostariam de cursar:

cursos <- aggregate(x = list(Quantidade = respostas$Fara_Curso_Superior), by = list(Ano = respostas$Ano, Fara_Curso_Superior = respostas$Fara_Curso_Superior), FUN=length)
por_ano <- aggregate(x = list(Total = respostas$Fara_Curso_Superior), by = list(Ano = respostas$Ano), FUN=length)
cursos <- merge(cursos, por_ano)
cursos$Percentual <- cursos$Quantidade * 100 / cursos$Total
p = ggplot(data = cursos, aes(x = "", y = Percentual, fill = Fara_Curso_Superior))  
p = p + geom_bar(width = 1, stat = "identity")
p = p + facet_grid(facets = . ~ Ano)
p = p + coord_polar(theta = "y", start = 0) 
p = p + scale_x_discrete()
p = p + xlab("") + ylab("") + labs(fill="Ano") 
p = p + ggtitle("Percentual de Entrevistadas por Área de Interesse")
p

Podemos observar que os percentuais permanecem ao longo dos anos, sendo a preferência por Ciências Biológicas e de Saúde em torno de 39%, para Humanas cerca de 36% e para Exatas próximo a 21%.

A opinião das alunas sobre o cursar Ciência da Computação é representada nos gráficos a seguir:

comp <- aggregate(x = list(Quantidade = respostas$Fara_Computacao), by = list(Ano = respostas$Ano, Fara_Computacao = respostas$Fara_Computacao), FUN=length)
por_ano <- aggregate(x = list(Total = respostas$Fara_Computacao), by = list(Ano = respostas$Ano), FUN=length)
comp <- merge(comp, por_ano)
comp$Percentual <- comp$Quantidade * 100 / comp$Total
p = ggplot(data = comp, aes(x = "", y = Percentual, fill = Fara_Computacao))  
p = p + geom_bar(width = 1, stat = "identity")
p = p + facet_grid(facets = . ~ Ano)
p = p + coord_polar(theta = "y", start = 0) 
p = p + scale_x_discrete()
p = p + xlab("") + ylab("") + labs(fill="Ano") 
p = p + ggtitle("Percentual de Entrevistadas por Interesse em Computação")
p

Será realizada a seguir uma análise de variância, no intuito de identificar, pergunta a pergunta, se as quantidades médias das respostas são estatisticamente diferentes ou se a diferença identificada nas médias trata-se de ruído.

A análise de variância não será completa sem um teste de comparação de médias: após identificar diferenças reais entre as respostas, será efetuado o teste de Tukey que dirá quais dos itens são diferentes entre si.

Para que seja feita a análise de variância, a amostra deve atender certas pressuposições básicas: 1) os erros são variáveis aleatórias independentes; 2) a variância é constante; 3) a distribuição dos erros é normal ou aproximadamente normal.

Os gráficos que apóiam essas pressuposições serão movidos para o fim da página.

Como exemplo, será efetuada isoladamente a análise de variância do atributo opcao_computacao em relação ao atributo Ano, com os anos como tratamentos. A variável observada é o interesse do aluno por optar pelo curso de ciência da computação, sendo atribuído o valor 1 no caso em que a estudante respondeu que não fará vestibular para computação, 2 se ainda está em dúvida e 3 se informou que irá optar por computação.

temp <- data.frame(Tratamento = respostas[, 3], Opcao_Computacao = respostas[, 1])
fit <- aov(Opcao_Computacao ~ Tratamento, data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value       Pr(>F)    
Tratamento    3     26    8.53      14 0.0000000044 ***
Residuals  3585   2180    0.61                         
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
cat("\n")
knit_print(HSD.test(fit, 'Tratamento'))
$statistics
  Mean CV MSerror  HSD r.harmonic
   2.1 37    0.61 0.11        659

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3585   4              3.6  0.05 Tukey Tratamento

$means
     Opcao_Computacao  std    r Min Max
2011              2.2 0.79 1750   1   3
2012              2.0 0.78  926   1   3
2013              2.0 0.76  498   1   3
2014              2.0 0.78  415   1   3

$comparison
NULL

$groups
   trt means M
1 2011   2.2 a
2 2012   2.0 b
3 2013   2.0 b
4 2014   2.0 b
par(mfrow=c(2,2))
plot(fit)

A partir do p-valor do tratamento Ano (Pr(>F)) abaixo de 5%, há evidências de uma diferença na quantidade de alunas que optam por computação devido à passagem do tempo.

Contudo, ao efetuar o teste de Tukey, percebemos que não há diferença real entre o ano de 2011 e os demais. Desta forma, concluímos que há constância na indecisão das alunas.

A seguir serão apresentadas as análises de variância dos outros atributos coletados nas entrevistas.

for (i in 4:ncol(respostas)) {
  temp <- data.frame(Tratamento = respostas[, i], Opcao_Computacao = respostas[, 1])
  
  nome <- colnames(respostas)[i]
  cat(paste("\nTratamento:", nome, "\n"))  
  cat("\n")
  
  fit <- aov(Opcao_Computacao ~ Tratamento, data = temp)
  knit_print(anova(fit))
  cat("\n")
  knit_print(HSD.test(fit, 'Tratamento'))
  
  # assign(nome, temp)
  par(mfrow=c(2,2))  
  plot(fit)
}

Tratamento: Serie 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value              Pr(>F)    
Tratamento    5    162    32.3    56.8 <0.0000000000000002 ***
Residuals  3533   2013     0.6                                
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror  HSD r.harmonic
   2.1 36    0.57 0.32         90

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3533   6                4  0.05 Tukey Tratamento

$means
                   Opcao_Computacao  std    r Min Max
Ensino Fundamental              2.3 0.72 1073   1   3
Ensino Superior                 1.7 0.81  361   1   3
Primeiro Ano                    2.2 0.75  798   1   3
Segundo Ano                     2.1 0.78  671   1   3
Supletivo                       2.4 0.86   17   1   3
Terceiro Ano                    1.8 0.76  619   1   3

$comparison
NULL

$groups
                 trt means  M
1 Supletivo            2.4  a
2 Ensino Fundamental   2.3  a
3 Primeiro Ano         2.2  a
4 Segundo Ano          2.1  a
5 Terceiro Ano         1.8 ab
6 Ensino Superior      1.7  b


Tratamento: Fara_Curso_Superior 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value       Pr(>F)    
Tratamento    2     24   12.12    19.9 0.0000000027 ***
Residuals  3459   2112    0.61                         
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.079       1080

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3459   3              3.3  0.05 Tukey Tratamento

$means
                   Opcao_Computacao  std    r Min Max
Biologicas e Saude              2.1 0.79 1450   1   3
Exatas                          2.2 0.78  785   1   3
Humanas                         2.0 0.77 1227   1   3

$comparison
NULL

$groups
                 trt means M
1 Exatas               2.2 a
2 Biologicas e Saude   2.1 b
3 Humanas              2.0 c


Tratamento: Somente_Ensina_Software 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value     Pr(>F)    
Tratamento    2     19    9.67    15.9 0.00000014 ***
Residuals  3509   2138    0.61                       
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror  HSD r.harmonic
   2.1 37    0.61 0.11        528

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3509   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 2.1 0.79 2716   1   3
Sim                 2.3 0.77  306   1   3
Talvez              2.1 0.75  490   1   3

$comparison
NULL

$groups
     trt means M
1 Sim      2.3 a
2 Talvez   2.1 b
3 Nao      2.1 b


Tratamento: Pouca_Matematica 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value              Pr(>F)    
Tratamento    2     43    21.3    35.5 0.00000000000000055 ***
Residuals  3481   2089     0.6                                
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37     0.6 0.088        862

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3481   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 2.0 0.79 2103   1   3
Sim                 2.3 0.77  559   1   3
Talvez              2.1 0.73  822   1   3

$comparison
NULL

$groups
     trt means M
1 Sim      2.3 a
2 Talvez   2.1 b
3 Nao      2.0 c


Tratamento: Maioria_Homens 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value              Pr(>F)    
Tratamento    2     55    27.5      46 <0.0000000000000002 ***
Residuals  3471   2075     0.6                                
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37     0.6 0.081        992

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3471   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 2.3 0.75  866   1   3
Sim                 2.0 0.79 1857   1   3
Talvez              2.1 0.76  751   1   3

$comparison
NULL

$groups
     trt means M
1 Nao      2.3 a
2 Talvez   2.1 b
3 Sim      2.0 b


Tratamento: Precisa_Saber_Usar_Computador 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value  Pr(>F)    
Tratamento    2      9    4.36    7.13 0.00081 ***
Residuals  3468   2119    0.61                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.081       1033

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3468   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 2.1 0.79 1072   1   3
Sim                 2.1 0.78 1670   1   3
Talvez              2.0 0.77  729   1   3

$comparison
NULL

$groups
     trt means M
1 Nao      2.1 a
2 Sim      2.1 a
3 Talvez   2.0 b


Tratamento: Precisa_Curso_Superior 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value              Pr(>F)    
Tratamento    2     50    25.1    41.8 <0.0000000000000002 ***
Residuals  3463   2075     0.6                                
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37     0.6 0.082        977

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3463   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 1.9 0.80  823   1   3
Sim                 2.2 0.77 1889   1   3
Talvez              2.0 0.74  754   1   3

$comparison
NULL

$groups
     trt means M
1 Sim      2.2 a
2 Talvez   2.0 b
3 Nao      1.9 b


Tratamento: Familia_Gostaria_Computacao 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value              Pr(>F)    
Tratamento    2    248   124.1     229 <0.0000000000000002 ***
Residuals  3484   1889     0.5                                
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 35    0.54 0.074       1095

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3484   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 1.8 0.79  999   1   3
Sim                 2.5 0.71  903   1   3
Talvez              2.1 0.72 1585   1   3

$comparison
NULL

$groups
     trt means M
1 Sim      2.5 a
2 Talvez   2.1 b
3 Nao      1.8 c


Tratamento: Dificuldade_Emprego 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value  Pr(>F)    
Tratamento    2      9    4.32    7.07 0.00086 ***
Residuals  3468   2120    0.61                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.097        709

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3468   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 2.1 0.79 1955   1   3
Sim                 2.2 0.80  349   1   3
Talvez              2.0 0.77 1167   1   3

$comparison
NULL

$groups
     trt means M
1 Sim      2.2 a
2 Nao      2.1 a
3 Talvez   2.0 b


Tratamento: Pouco_Lazer 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value  Pr(>F)    
Tratamento    2      9    4.44    7.25 0.00072 ***
Residuals  3470   2124    0.61                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.092        795

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3470   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 2.1 0.77 1965   1   3
Sim                 2.2 0.81  428   1   3
Talvez              2.0 0.79 1080   1   3

$comparison
NULL

$groups
     trt means M
1 Sim      2.2 a
2 Nao      2.1 a
3 Talvez   2.0 b


Tratamento: Usa_Criatividade 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value Pr(>F)
Tratamento    2      0   0.168    0.27   0.76
Residuals  3471   2135   0.615               

$statistics
  Mean CV MSerror  HSD r.harmonic
   2.1 38    0.61 0.14        322

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3471   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 2.1 0.79  169   1   3
Sim                 2.1 0.78 2978   1   3
Talvez              2.1 0.79  327   1   3

$comparison
NULL

$groups
     trt means M
1 Nao      2.1 a
2 Sim      2.1 a
3 Talvez   2.1 a


Tratamento: Da_Prestigio 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value      Pr(>F)    
Tratamento    2     24   11.79    19.4 0.000000004 ***
Residuals  3465   2102    0.61                        
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror  HSD r.harmonic
   2.1 37    0.61 0.11        567

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3465   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 2.1 0.87  258   1   3
Sim                 2.2 0.77 2160   1   3
Talvez              2.0 0.78 1050   1   3

$comparison
NULL

$groups
     trt means  M
1 Sim      2.2  a
2 Nao      2.1 ab
3 Talvez   2.0  b


Tratamento: Boa_Remuneracao 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value    Pr(>F)    
Tratamento    2     16    7.77    12.7 0.0000031 ***
Residuals  3472   2118    0.61                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror  HSD r.harmonic
   2.1 37    0.61 0.13        406

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3472   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 2.1 0.79  162   1   3
Sim                 2.2 0.78 1742   1   3
Talvez              2.0 0.78 1571   1   3

$comparison
NULL

$groups
     trt means  M
1 Sim      2.2  a
2 Nao      2.1 ab
3 Talvez   2.0  b


Tratamento: Atuacao_Outras_Areas 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value Pr(>F)    
Tratamento    2     10    4.79    7.83 0.0004 ***
Residuals  3503   2142    0.61                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror  HSD r.harmonic
   2.1 37    0.61 0.15        311

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3503   3              3.3  0.05 Tukey Tratamento

$means
       Opcao_Computacao  std    r Min Max
Nao                 2.1 0.84  127   1   3
Sim                 2.1 0.78 2655   1   3
Talvez              2.0 0.77  724   1   3

$comparison
NULL

$groups
     trt means  M
1 Sim      2.1  a
2 Nao      2.1 ab
3 Talvez   2.0  b


Tratamento: Usa_Computador_Propria_Casa 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value              Pr(>F)    
Tratamento    1     39    39.5    65.3 0.00000000000000086 ***
Residuals  3587   2166     0.6                                
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37     0.6 0.098        479

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.5 0.68  258   1   3
Sim              2.1 0.78 3331   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.5 a
2 Sim   2.1 b


Tratamento: Usa_Computador_Casa_Parentes 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value Pr(>F)
Tratamento    1      0   0.397    0.64   0.42
Residuals  3587   2205   0.615               

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.054       1594

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.1 0.82 1194   1   3
Sim              2.1 0.77 2395   1   3

$comparison
NULL

$groups
  trt means M
1 Sim   2.1 a
2 Nao   2.1 a


Tratamento: Usa_Computador_Casa_Amigos 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value Pr(>F)
Tratamento    1      2   1.505    2.45   0.12
Residuals  3587   2204   0.615               

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.054       1634

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.1 0.81 1258   1   3
Sim              2.1 0.77 2331   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.1 a
2 Sim   2.1 a


Tratamento: Usa_Computador_Escola 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value        Pr(>F)    
Tratamento    1     23   23.04    37.9 0.00000000084 ***
Residuals  3587   2183    0.61                          
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.051       1787

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.2 0.78 1909   1   3
Sim              2.0 0.78 1680   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.2 a
2 Sim   2.0 b


Tratamento: Usa_Computador_Trabalho 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value   Pr(>F)    
Tratamento    1     10   10.43    17.1 0.000037 ***
Residuals  3587   2195    0.61                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.064       1157

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.1 0.78 2864   1   3
Sim              2.0 0.81  725   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.1 a
2 Sim   2.0 b


Tratamento: Usa_Computador_Lan_House 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value              Pr(>F)    
Tratamento    1     58    57.5    96.1 <0.0000000000000002 ***
Residuals  3587   2148     0.6                                
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37     0.6 0.054       1603

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.0 0.79 2380   1   3
Sim              2.3 0.74 1209   1   3

$comparison
NULL

$groups
  trt means M
1 Sim   2.3 a
2 Nao   2.0 b


Tratamento: Usa_Computador_Biblioteca 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value  Pr(>F)    
Tratamento    1     10   10.36    16.9 0.00004 ***
Residuals  3587   2195    0.61                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.059       1350

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.1 0.77 2688   1   3
Sim              2.0 0.81  901   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.1 a
2 Sim   2.0 b


Tratamento: Usa_Computador_Centro_Inclusao_Digital 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value   Pr(>F)    
Tratamento    1     12   11.61      19 0.000014 ***
Residuals  3587   2194    0.61                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror HSD r.harmonic
   2.1 37    0.61 0.1        465

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.1 0.78 3339   1   3
Sim              2.3 0.77  250   1   3

$comparison
NULL

$groups
  trt means M
1 Sim   2.3 a
2 Nao   2.1 b


Tratamento: Usa_Editor_Texto 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value         Pr(>F)    
Tratamento    1     26   26.13      43 0.000000000062 ***
Residuals  3587   2180    0.61                           
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.074        852

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.3 0.73  494   1   3
Sim              2.1 0.79 3095   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.3 a
2 Sim   2.1 b


Tratamento: Usa_Editor_Imagem 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value Pr(>F)  
Tratamento    1      4    3.98    6.48  0.011 *
Residuals  3587   2202    0.61                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.058       1421

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.2 0.79  976   1   3
Sim              2.1 0.78 2613   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.2 a
2 Sim   2.1 b


Tratamento: Usa_Planilha_Eletrônica 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value  Pr(>F)    
Tratamento    1      7    6.78    11.1 0.00089 ***
Residuals  3587   2199    0.61                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.051       1777

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.1 0.77 1970   1   3
Sim              2.0 0.80 1619   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.1 a
2 Sim   2.0 b


Tratamento: Usa_Banco_Dados 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value   Pr(>F)    
Tratamento    1     10    9.63    15.7 0.000075 ***
Residuals  3587   2196    0.61                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.064       1163

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.1 0.78 2859   1   3
Sim              2.2 0.80  730   1   3

$comparison
NULL

$groups
  trt means M
1 Sim   2.2 a
2 Nao   2.1 b


Tratamento: Usa_Internet 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value    Pr(>F)    
Tratamento    1     15   14.56    23.8 0.0000011 ***
Residuals  3587   2191    0.61                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.086        637

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.3 0.75  353   1   3
Sim              2.1 0.79 3236   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.3 a
2 Sim   2.1 b


Tratamento: Usa_Redes_Sociais 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value   Pr(>F)    
Tratamento    1     10   10.21    16.7 0.000045 ***
Residuals  3587   2196    0.61                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.092        552

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.3 0.78  301   1   3
Sim              2.1 0.78 3288   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.3 a
2 Sim   2.1 b


Tratamento: Usa_Email 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value       Pr(>F)    
Tratamento    1     21   20.96    34.4 0.0000000049 ***
Residuals  3587   2185    0.61                         
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.077        795

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.3 0.76  455   1   3
Sim              2.1 0.78 3134   1   3

$comparison
NULL

$groups
  trt means M
1 Nao   2.3 a
2 Sim   2.1 b


Tratamento: Usa_Jogos 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value Pr(>F)   
Tratamento    1      6    6.16    10.1 0.0015 **
Residuals  3587   2200    0.61                  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.055       1579

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.0 0.80 1173   1   3
Sim              2.1 0.77 2416   1   3

$comparison
NULL

$groups
  trt means M
1 Sim   2.1 a
2 Nao   2.0 b


Tratamento: Desenvolve_Paginas_Web 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value  Pr(>F)    
Tratamento    1      9    8.79    14.4 0.00015 ***
Residuals  3587   2197    0.61                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.071        923

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.1 0.78 3045   1   3
Sim              2.2 0.78  544   1   3

$comparison
NULL

$groups
  trt means M
1 Sim   2.2 a
2 Nao   2.1 b


Tratamento: Cria_Programas_Computador 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value         Pr(>F)    
Tratamento    1     28   28.12    46.3 0.000000000012 ***
Residuals  3587   2178    0.61                           
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.062       1221

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.0 0.78 2809   1   3
Sim              2.3 0.77  780   1   3

$comparison
NULL

$groups
  trt means M
1 Sim   2.3 a
2 Nao   2.0 b


Tratamento: Usa_Outros_Softwares 

Analysis of Variance Table

Response: Opcao_Computacao
             Df Sum Sq Mean Sq F value  Pr(>F)    
Tratamento    1      8    7.57    12.4 0.00044 ***
Residuals  3587   2198    0.61                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

$statistics
  Mean CV MSerror   HSD r.harmonic
   2.1 37    0.61 0.057       1465

$parameters
    Df ntr StudentizedRange alpha  test     name.t
  3587   2              2.8  0.05 Tukey Tratamento

$means
    Opcao_Computacao  std    r Min Max
Nao              2.1 0.78 2564   1   3
Sim              2.2 0.79 1025   1   3

$comparison
NULL

$groups
  trt means M
1 Sim   2.2 a
2 Nao   2.1 b

A partir da análise de variância e do teste de Tukey dos atributos, identificamos o seguinte:

Sobre o atributo Série, devemos descartar a informação sobre as estudantes de Supletivo, devido à baixa quantidade de respondentes. Normalmente se descartam tratamentos com menos de 30 ocorrências. Podemos perceber dois grupos: do Ensino Fundamental até o Segundo Ano há uma tendência levemente positiva em relação ao curso de computação; por outro lado, alunas do Terceiro Ano e que já cursam o Nível Superior possuem leve rejeição pelo curso.

Em relação à intenção de fazer um curso superior, atributo Fara_Curso_Superior, as estudantes que informaram predileção por Exatas, Biológicas e Saúde possuem uma leve tendência a optar por computação, enquanto as que marcaram Humanas tem dúvida sobre uma carreira em computação.

O atributo Somente_Ensina_Software mostra que as estudantes que acreditam em tal afirmação tem tendência a optar por um curso de computação, enquanto as que acreditam no contrário ou não tem certeza ficaram em dúvida sobre cursar computação.

Um dos resultados mais desconcertantes refere-se ao atributo Pouca_Matematica: apesar da maioria das entrevistadas acreditar de que o curso de computação baseia-se em muito conteúdo matemático, uma quantidade considerável de respondentes discorda. O elemento contraditório é que estas últimas tem certa tendência em seguir uma carreira em computação!

Outro resultado conflitante está relacionado à afirmação de que nos cursos de computação há muitos homens, atributo Maioria_Homens. As entrevistadas que discordam dessa afirmação pretendem cursar ciência da computação.

Sobre o domínio de uso do computador ser um pré-requisito para o curso de computação, atributo Precisa_Saber_Usar_Computador, a decisão sobre cursar ou não ciência da computação ficou equilibrada em relação a esse quesito.

O atributo Precisa_Curso_Superior está relacionado à necessidade de uma graduação para exercer a profissão de cientista da computação. As estudantes que acreditam nessa afirmativa tem uma leve tendência a optar pelo curso de computação. Já as que não acreditam ou tem dúvida estão indecisas sobre o cursar computação.

O atributo mais marcante neste estudo foi Familia_Gostaria_Computacao. Nesse, é possível perceber claramente a influência familiar na decisão do curso superior: estudantes que acreditam que a família ficaria feliz caso elas optassem por computação tem uma forte tendência em realmente escolher o curso. As entrevistadas que acreditam que a família não apoiaria a escolha desse curso tem uma tendência a rejeitar a computação. As que não tem certeza da opinião da família também não tem certeza sobre o desejo de seguir essa carreira.

O atributo Dificuldade_Emprego, origina-se da percepção das estudantes de que uma pessoa que trabalha na área de computação tem dificuldades em empregar-se. Houve pouca quantidade de entrevistadas que acreditava nessa afirmação mas, no geral, as estudantes que ficaram indecisas sobre cursar computação.

O atributo Pouco_Lazer, originário da pergunta “Quem trabalha com computação tem poucas horas de lazer?”, teve resultados semelhantes ao atributo Dificuldade_Emprego, percebendo-se uma forte indecisão na opção do curso, independentemente da percepção de quantidade de lazer.

Os atributos Usa_Criatividade, Da_Prestigio, Boa_Remuneracao e Atuacao_Outras_Areas parecem-se muito com os atributos Dificuldade_Emprego e Pouco_Lazer, denotando que as entrevistadas ainda não preocupam-se com esses atributos na hora de escolher o curso superior.

O atributo Usa_Computador_Propria_Casa, que é auto-explicativo, mostra que alunas que não usam ou não possuem o computador em suas casas estão muito propensas a fazer um curso de computação! As estudantes que usam do equipamento em seu domicílio mostram-se indecisas sobre a opção pelo curso.

Os atributos Usa_Computador_Casa_Parentes e Usa_Computacao_Casa_Amigos tem pouca relevância na decisão por um curso de computação.

O não uso do computador na escola, atributo Usa_Computador_Escola gera um efeito inverso, isto é, alunas que não usam o equipamento em aula mostram leve tendência em optar por computação.

Usar ou não usar o computador no trabalho, atributo Usa_Computador_Trabalho, parece não ter relevância na escolha do curso de computação.

Usar o computador em uma Lan House tem um efeito positivo na opção pelo curso de computação.

Usar ou não usar o computador na biblioteca, atributo Usa_Computador_Biblioteca, não tem relevância na opção por cursar computação.

Usar o computador em um Centro de Inclusão Digital tem um efeito positivo semelhante a usar em uma Lan House, movendo a vontade das alunas para a ciência da computação.

O uso de aplicações de escritório, como editores de texto, planilhas eletrônicas e editores de imagens não tem impacto na escolha do curso de computação.

Contudo, o uso de banco de dados e a criação de programas de computador tem influência positiva na decisão por cursar ciência da computação.

O não uso de internet, redes sociais e e-mail motiva as estudantes a optar pelo curso de computação.

O uso de jogos de computador, atributo Usa_Jogos, não tem relevância na escolha do curso de computação.

Desenvolver páginas web e utilizar outros softwares tem uma pequena relevância na escolha do curso de computação.

Iremos agora criar um modelo de análise de variância levando em consideração todas as variáveis do questionário, adotando uma abordagem top-down, isto é, iterando sobre o modelo e retirando as variáveis menos significativas, até que todas as variáveis sejam significativas.

temp <- respostas[, c(1, 3:ncol(respostas))]
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     18     6.2   13.15        0.00000001574 ***
Serie                                     5    135    26.9   57.51 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.7   18.52        0.00000001021 ***
Somente_Ensina_Software                   2      7     3.4    7.19              0.00077 ***
Pouca_Matematica                          2     15     7.3   15.59        0.00000018405 ***
Maioria_Homens                            2     22    10.8   23.08        0.00000000011 ***
Precisa_Saber_Usar_Computador             2      4     1.8    3.89              0.02048 *  
Precisa_Curso_Superior                    2     11     5.7   12.14        0.00000560247 ***
Familia_Gostaria_Computacao               2    149    74.4  159.12 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      2     1.2    2.62              0.07309 .  
Pouco_Lazer                               2      2     1.0    2.11              0.12094    
Usa_Criatividade                          2      1     0.3    0.63              0.53492    
Da_Prestigio                              2     15     7.5   15.98        0.00000012527 ***
Boa_Remuneracao                           2      4     2.1    4.42              0.01211 *  
Atuacao_Outras_Areas                      2      7     3.4    7.37              0.00064 ***
Usa_Computador_Propria_Casa               1      4     4.2    9.01              0.00271 ** 
Usa_Computador_Casa_Parentes              1      0     0.4    0.82              0.36671    
Usa_Computador_Casa_Amigos                1      3     3.2    6.78              0.00926 ** 
Usa_Computador_Escola                     1      4     4.4    9.46              0.00212 ** 
Usa_Computador_Trabalho                   1      0     0.3    0.59              0.44221    
Usa_Computador_Lan_House                  1     11    10.8   23.14        0.00000158005 ***
Usa_Computador_Biblioteca                 1      0     0.0    0.00              0.99453    
Usa_Computador_Centro_Inclusao_Digital    1      4     3.5    7.56              0.00602 ** 
Usa_Editor_Texto                          1      0     0.0    0.04              0.84789    
Usa_Editor_Imagem                         1      1     0.6    1.20              0.27347    
Usa_Planilha_Eletrônica                   1      1     1.4    2.92              0.08738 .  
Usa_Banco_Dados                           1      6     6.1   13.02              0.00031 ***
Usa_Internet                              1      1     0.7    1.58              0.20927    
Usa_Redes_Sociais                         1      0     0.4    0.84              0.36060    
Usa_Email                                 1      0     0.0    0.00              0.95509    
Usa_Jogos                                 1      2     1.9    4.13              0.04232 *  
Desenvolve_Paginas_Web                    1      1     1.2    2.48              0.11544    
Cria_Programas_Computador                 1      5     5.4   11.54              0.00069 ***
Usa_Outros_Softwares                      1      0     0.1    0.21              0.64857    
Residuals                              2903   1358     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Novo modelo, retirando variável Usa_Computador_Biblioteca:

temp$Usa_Computador_Biblioteca <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     18     6.2   13.15        0.00000001572 ***
Serie                                     5    135    26.9   57.51 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.7   18.52        0.00000001021 ***
Somente_Ensina_Software                   2      7     3.4    7.19              0.00077 ***
Pouca_Matematica                          2     15     7.3   15.59        0.00000018393 ***
Maioria_Homens                            2     22    10.8   23.08        0.00000000011 ***
Precisa_Saber_Usar_Computador             2      4     1.8    3.89              0.02048 *  
Precisa_Curso_Superior                    2     11     5.7   12.14        0.00000559968 ***
Familia_Gostaria_Computacao               2    149    74.4  159.13 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      2     1.2    2.62              0.07308 .  
Pouco_Lazer                               2      2     1.0    2.11              0.12093    
Usa_Criatividade                          2      1     0.3    0.63              0.53491    
Da_Prestigio                              2     15     7.5   15.98        0.00000012518 ***
Boa_Remuneracao                           2      4     2.1    4.42              0.01211 *  
Atuacao_Outras_Areas                      2      7     3.4    7.37              0.00064 ***
Usa_Computador_Propria_Casa               1      4     4.2    9.01              0.00271 ** 
Usa_Computador_Casa_Parentes              1      0     0.4    0.82              0.36670    
Usa_Computador_Casa_Amigos                1      3     3.2    6.78              0.00926 ** 
Usa_Computador_Escola                     1      4     4.4    9.46              0.00212 ** 
Usa_Computador_Trabalho                   1      0     0.3    0.59              0.44220    
Usa_Computador_Lan_House                  1     11    10.8   23.14        0.00000157927 ***
Usa_Computador_Centro_Inclusao_Digital    1      4     3.5    7.51              0.00618 ** 
Usa_Editor_Texto                          1      0     0.0    0.03              0.85505    
Usa_Editor_Imagem                         1      1     0.5    1.16              0.28116    
Usa_Planilha_Eletrônica                   1      1     1.3    2.86              0.09091 .  
Usa_Banco_Dados                           1      6     6.0   12.84              0.00035 ***
Usa_Internet                              1      1     0.7    1.55              0.21261    
Usa_Redes_Sociais                         1      0     0.4    0.78              0.37817    
Usa_Email                                 1      0     0.0    0.00              0.94422    
Usa_Jogos                                 1      2     1.9    4.06              0.04406 *  
Desenvolve_Paginas_Web                    1      1     1.1    2.45              0.11784    
Cria_Programas_Computador                 1      5     5.2   11.20              0.00083 ***
Usa_Outros_Softwares                      1      0     0.1    0.18              0.67037    
Residuals                              2904   1358     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Email:

temp$Usa_Email <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     18     6.2   13.16        0.00000001565 ***
Serie                                     5    135    26.9   57.53 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.7   18.52        0.00000001016 ***
Somente_Ensina_Software                   2      7     3.4    7.19              0.00077 ***
Pouca_Matematica                          2     15     7.3   15.60        0.00000018321 ***
Maioria_Homens                            2     22    10.8   23.08        0.00000000011 ***
Precisa_Saber_Usar_Computador             2      4     1.8    3.89              0.02046 *  
Precisa_Curso_Superior                    2     11     5.7   12.15        0.00000558252 ***
Familia_Gostaria_Computacao               2    149    74.4  159.17 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      2     1.2    2.62              0.07303 .  
Pouco_Lazer                               2      2     1.0    2.11              0.12087    
Usa_Criatividade                          2      1     0.3    0.63              0.53482    
Da_Prestigio                              2     15     7.5   15.98        0.00000012468 ***
Boa_Remuneracao                           2      4     2.1    4.42              0.01210 *  
Atuacao_Outras_Areas                      2      7     3.4    7.37              0.00064 ***
Usa_Computador_Propria_Casa               1      4     4.2    9.01              0.00271 ** 
Usa_Computador_Casa_Parentes              1      0     0.4    0.82              0.36664    
Usa_Computador_Casa_Amigos                1      3     3.2    6.78              0.00925 ** 
Usa_Computador_Escola                     1      4     4.4    9.46              0.00211 ** 
Usa_Computador_Trabalho                   1      0     0.3    0.59              0.44214    
Usa_Computador_Lan_House                  1     11    10.8   23.15        0.00000157447 ***
Usa_Computador_Centro_Inclusao_Digital    1      4     3.5    7.51              0.00618 ** 
Usa_Editor_Texto                          1      0     0.0    0.03              0.85503    
Usa_Editor_Imagem                         1      1     0.5    1.16              0.28110    
Usa_Planilha_Eletrônica                   1      1     1.3    2.86              0.09086 .  
Usa_Banco_Dados                           1      6     6.0   12.84              0.00034 ***
Usa_Internet                              1      1     0.7    1.55              0.21255    
Usa_Redes_Sociais                         1      0     0.4    0.78              0.37811    
Usa_Jogos                                 1      2     1.8    3.94              0.04726 *  
Desenvolve_Paginas_Web                    1      1     1.1    2.44              0.11865    
Cria_Programas_Computador                 1      5     5.2   11.10              0.00088 ***
Usa_Outros_Softwares                      1      0     0.1    0.16              0.69102    
Residuals                              2905   1359     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Editor_Texto:

temp$Usa_Editor_Texto <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     18     6.2   13.16        0.00000001556 ***
Serie                                     5    135    26.9   57.55 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.7   18.53        0.00000001010 ***
Somente_Ensina_Software                   2      7     3.4    7.19              0.00077 ***
Pouca_Matematica                          2     15     7.3   15.60        0.00000018236 ***
Maioria_Homens                            2     22    10.8   23.09        0.00000000011 ***
Precisa_Saber_Usar_Computador             2      4     1.8    3.90              0.02043 *  
Precisa_Curso_Superior                    2     11     5.7   12.15        0.00000556238 ***
Familia_Gostaria_Computacao               2    149    74.4  159.21 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      2     1.2    2.62              0.07298 .  
Pouco_Lazer                               2      2     1.0    2.12              0.12079    
Usa_Criatividade                          2      1     0.3    0.63              0.53472    
Da_Prestigio                              2     15     7.5   15.99        0.00000012409 ***
Boa_Remuneracao                           2      4     2.1    4.42              0.01208 *  
Atuacao_Outras_Areas                      2      7     3.4    7.37              0.00064 ***
Usa_Computador_Propria_Casa               1      4     4.2    9.01              0.00271 ** 
Usa_Computador_Casa_Parentes              1      0     0.4    0.82              0.36656    
Usa_Computador_Casa_Amigos                1      3     3.2    6.78              0.00924 ** 
Usa_Computador_Escola                     1      4     4.4    9.47              0.00211 ** 
Usa_Computador_Trabalho                   1      0     0.3    0.59              0.44207    
Usa_Computador_Lan_House                  1     11    10.8   23.16        0.00000156884 ***
Usa_Computador_Centro_Inclusao_Digital    1      4     3.5    7.51              0.00617 ** 
Usa_Editor_Imagem                         1      1     0.5    1.18              0.27835    
Usa_Planilha_Eletrônica                   1      1     1.3    2.69              0.10098    
Usa_Banco_Dados                           1      6     6.0   12.83              0.00035 ***
Usa_Internet                              1      1     0.8    1.67              0.19643    
Usa_Redes_Sociais                         1      0     0.4    0.80              0.37012    
Usa_Jogos                                 1      2     1.9    3.96              0.04675 *  
Desenvolve_Paginas_Web                    1      1     1.1    2.42              0.11960    
Cria_Programas_Computador                 1      5     5.2   11.03              0.00091 ***
Usa_Outros_Softwares                      1      0     0.1    0.16              0.68664    
Residuals                              2906   1359     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Outros_Softwares:

temp$Usa_Outros_Softwares <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     18     6.2   13.16        0.00000001547 ***
Serie                                     5    135    26.9   57.56 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.7   18.53        0.00000001005 ***
Somente_Ensina_Software                   2      7     3.4    7.19              0.00077 ***
Pouca_Matematica                          2     15     7.3   15.60        0.00000018155 ***
Maioria_Homens                            2     22    10.8   23.10        0.00000000011 ***
Precisa_Saber_Usar_Computador             2      4     1.8    3.90              0.02041 *  
Precisa_Curso_Superior                    2     11     5.7   12.15        0.00000554301 ***
Familia_Gostaria_Computacao               2    149    74.4  159.26 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      2     1.2    2.62              0.07292 .  
Pouco_Lazer                               2      2     1.0    2.12              0.12072    
Usa_Criatividade                          2      1     0.3    0.63              0.53463    
Da_Prestigio                              2     15     7.5   15.99        0.00000012352 ***
Boa_Remuneracao                           2      4     2.1    4.42              0.01207 *  
Atuacao_Outras_Areas                      2      7     3.4    7.37              0.00064 ***
Usa_Computador_Propria_Casa               1      4     4.2    9.01              0.00270 ** 
Usa_Computador_Casa_Parentes              1      0     0.4    0.82              0.36650    
Usa_Computador_Casa_Amigos                1      3     3.2    6.79              0.00923 ** 
Usa_Computador_Escola                     1      4     4.4    9.47              0.00211 ** 
Usa_Computador_Trabalho                   1      0     0.3    0.59              0.44200    
Usa_Computador_Lan_House                  1     11    10.8   23.16        0.00000156343 ***
Usa_Computador_Centro_Inclusao_Digital    1      4     3.5    7.51              0.00616 ** 
Usa_Editor_Imagem                         1      1     0.5    1.18              0.27828    
Usa_Planilha_Eletrônica                   1      1     1.3    2.69              0.10093    
Usa_Banco_Dados                           1      6     6.0   12.83              0.00035 ***
Usa_Internet                              1      1     0.8    1.67              0.19637    
Usa_Redes_Sociais                         1      0     0.4    0.80              0.37005    
Usa_Jogos                                 1      2     1.9    3.96              0.04672 *  
Desenvolve_Paginas_Web                    1      1     1.1    2.42              0.11955    
Cria_Programas_Computador                 1      5     5.2   11.03              0.00091 ***
Residuals                              2907   1359     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Criatividade:

temp$Usa_Criatividade <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     19     6.4   13.74        0.00000000673 ***
Serie                                     5    136    27.2   58.46 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   17.95        0.00000001784 ***
Somente_Ensina_Software                   2      8     4.0    8.63              0.00018 ***
Pouca_Matematica                          2     16     7.9   16.92        0.00000004934 ***
Maioria_Homens                            2     22    11.0   23.56        0.00000000007 ***
Precisa_Saber_Usar_Computador             2      3     1.7    3.69              0.02503 *  
Precisa_Curso_Superior                    2     11     5.7   12.12        0.00000570154 ***
Familia_Gostaria_Computacao               2    150    75.0  160.92 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.4    3.01              0.04930 *  
Pouco_Lazer                               2      2     0.9    1.97              0.13997    
Da_Prestigio                              2     15     7.5   16.15        0.00000010534 ***
Boa_Remuneracao                           2      4     2.1    4.41              0.01227 *  
Atuacao_Outras_Areas                      2      7     3.4    7.23              0.00074 ***
Usa_Computador_Propria_Casa               1      5     5.2   11.16              0.00084 ***
Usa_Computador_Casa_Parentes              1      0     0.4    0.93              0.33608    
Usa_Computador_Casa_Amigos                1      3     3.4    7.35              0.00673 ** 
Usa_Computador_Escola                     1      5     4.7   10.06              0.00153 ** 
Usa_Computador_Trabalho                   1      0     0.2    0.53              0.46759    
Usa_Computador_Lan_House                  1     11    10.5   22.56        0.00000213805 ***
Usa_Computador_Centro_Inclusao_Digital    1      3     3.2    6.91              0.00861 ** 
Usa_Editor_Imagem                         1      1     0.6    1.24              0.26462    
Usa_Planilha_Eletrônica                   1      1     1.3    2.72              0.09918 .  
Usa_Banco_Dados                           1      6     6.4   13.84              0.00020 ***
Usa_Internet                              1      1     0.9    1.90              0.16860    
Usa_Redes_Sociais                         1      0     0.3    0.64              0.42238    
Usa_Jogos                                 1      2     1.8    3.78              0.05186 .  
Desenvolve_Paginas_Web                    1      1     1.0    2.23              0.13525    
Cria_Programas_Computador                 1      5     5.1   10.89              0.00098 ***
Residuals                              2938   1369     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Computador_Trabalho:

temp$Usa_Computador_Trabalho <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     19     6.4   13.74        0.00000000669 ***
Serie                                     5    136    27.2   58.48 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   17.96        0.00000001774 ***
Somente_Ensina_Software                   2      8     4.0    8.64              0.00018 ***
Pouca_Matematica                          2     16     7.9   16.93        0.00000004906 ***
Maioria_Homens                            2     22    11.0   23.57        0.00000000007 ***
Precisa_Saber_Usar_Computador             2      3     1.7    3.69              0.02500 *  
Precisa_Curso_Superior                    2     11     5.7   12.13        0.00000567875 ***
Familia_Gostaria_Computacao               2    150    75.0  160.98 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.4    3.01              0.04926 *  
Pouco_Lazer                               2      2     0.9    1.97              0.13988    
Da_Prestigio                              2     15     7.5   16.16        0.00000010478 ***
Boa_Remuneracao                           2      4     2.1    4.41              0.01225 *  
Atuacao_Outras_Areas                      2      7     3.4    7.23              0.00074 ***
Usa_Computador_Propria_Casa               1      5     5.2   11.17              0.00084 ***
Usa_Computador_Casa_Parentes              1      0     0.4    0.93              0.33600    
Usa_Computador_Casa_Amigos                1      3     3.4    7.36              0.00673 ** 
Usa_Computador_Escola                     1      5     4.7   10.06              0.00153 ** 
Usa_Computador_Lan_House                  1     11    10.5   22.64        0.00000204411 ***
Usa_Computador_Centro_Inclusao_Digital    1      3     3.4    7.20              0.00734 ** 
Usa_Editor_Imagem                         1      1     0.6    1.28              0.25854    
Usa_Planilha_Eletrônica                   1      1     1.3    2.85              0.09174 .  
Usa_Banco_Dados                           1      6     6.4   13.81              0.00021 ***
Usa_Internet                              1      1     0.9    1.89              0.16970    
Usa_Redes_Sociais                         1      0     0.3    0.65              0.42098    
Usa_Jogos                                 1      2     1.8    3.79              0.05163 .  
Desenvolve_Paginas_Web                    1      1     1.0    2.23              0.13550    
Cria_Programas_Computador                 1      5     5.1   10.91              0.00097 ***
Residuals                              2939   1369     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Redes_Sociais:

temp$Usa_Redes_Sociais <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     19     6.4   13.75        0.00000000667 ***
Serie                                     5    136    27.2   58.49 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   17.96        0.00000001769 ***
Somente_Ensina_Software                   2      8     4.0    8.64              0.00018 ***
Pouca_Matematica                          2     16     7.9   16.93        0.00000004894 ***
Maioria_Homens                            2     22    11.0   23.57        0.00000000007 ***
Precisa_Saber_Usar_Computador             2      3     1.7    3.69              0.02499 *  
Precisa_Curso_Superior                    2     11     5.7   12.13        0.00000566839 ***
Familia_Gostaria_Computacao               2    150    75.0  161.00 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.4    3.01              0.04923 *  
Pouco_Lazer                               2      2     0.9    1.97              0.13984    
Da_Prestigio                              2     15     7.5   16.16        0.00000010453 ***
Boa_Remuneracao                           2      4     2.1    4.41              0.01224 *  
Atuacao_Outras_Areas                      2      7     3.4    7.23              0.00074 ***
Usa_Computador_Propria_Casa               1      5     5.2   11.17              0.00084 ***
Usa_Computador_Casa_Parentes              1      0     0.4    0.93              0.33596    
Usa_Computador_Casa_Amigos                1      3     3.4    7.36              0.00672 ** 
Usa_Computador_Escola                     1      5     4.7   10.06              0.00153 ** 
Usa_Computador_Lan_House                  1     11    10.5   22.65        0.00000204048 ***
Usa_Computador_Centro_Inclusao_Digital    1      3     3.4    7.20              0.00734 ** 
Usa_Editor_Imagem                         1      1     0.6    1.28              0.25850    
Usa_Planilha_Eletrônica                   1      1     1.3    2.85              0.09171 .  
Usa_Banco_Dados                           1      6     6.4   13.82              0.00021 ***
Usa_Internet                              1      1     0.9    1.89              0.16966    
Usa_Jogos                                 1      2     1.7    3.73              0.05368 .  
Desenvolve_Paginas_Web                    1      1     1.1    2.26              0.13307    
Cria_Programas_Computador                 1      5     5.1   11.04              0.00090 ***
Residuals                              2940   1369     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Computador_Casa_Parentes:

temp$Usa_Computador_Casa_Parentes <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     19     6.4   13.74       0.000000006765 ***
Serie                                     5    136    27.2   58.45 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   17.95       0.000000017918 ***
Somente_Ensina_Software                   2      8     4.0    8.63              0.00018 ***
Pouca_Matematica                          2     16     7.9   16.92       0.000000049541 ***
Maioria_Homens                            2     22    11.0   23.56       0.000000000071 ***
Precisa_Saber_Usar_Computador             2      3     1.7    3.69              0.02505 *  
Precisa_Curso_Superior                    2     11     5.7   12.12       0.000005718380 ***
Familia_Gostaria_Computacao               2    150    75.0  160.88 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.4    3.01              0.04934 *  
Pouco_Lazer                               2      2     0.9    1.97              0.14004    
Da_Prestigio                              2     15     7.5   16.15       0.000000105751 ***
Boa_Remuneracao                           2      4     2.1    4.41              0.01228 *  
Atuacao_Outras_Areas                      2      7     3.4    7.23              0.00074 ***
Usa_Computador_Propria_Casa               1      5     5.2   11.16              0.00085 ***
Usa_Computador_Casa_Amigos                1      2     1.6    3.50              0.06145 .  
Usa_Computador_Escola                     1      4     4.1    8.73              0.00316 ** 
Usa_Computador_Lan_House                  1     11    11.0   23.56       0.000001271852 ***
Usa_Computador_Centro_Inclusao_Digital    1      4     3.6    7.69              0.00558 ** 
Usa_Editor_Imagem                         1      1     0.8    1.74              0.18782    
Usa_Planilha_Eletrônica                   1      1     1.3    2.70              0.10044    
Usa_Banco_Dados                           1      7     6.7   14.30              0.00016 ***
Usa_Internet                              1      1     0.8    1.82              0.17700    
Usa_Jogos                                 1      2     2.0    4.38              0.03652 *  
Desenvolve_Paginas_Web                    1      1     1.0    2.23              0.13522    
Cria_Programas_Computador                 1      5     5.2   11.17              0.00084 ***
Residuals                              2941   1371     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Editor_Imagem:

temp$Usa_Editor_Imagem <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     19     6.4   13.74        0.00000000672 ***
Serie                                     5    136    27.2   58.47 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   17.95        0.00000001781 ***
Somente_Ensina_Software                   2      8     4.0    8.63              0.00018 ***
Pouca_Matematica                          2     16     7.9   16.92        0.00000004927 ***
Maioria_Homens                            2     22    11.0   23.56        0.00000000007 ***
Precisa_Saber_Usar_Computador             2      3     1.7    3.69              0.02502 *  
Precisa_Curso_Superior                    2     11     5.7   12.13        0.00000569553 ***
Familia_Gostaria_Computacao               2    150    75.0  160.94 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.4    3.01              0.04929 *  
Pouco_Lazer                               2      2     0.9    1.97              0.13995    
Da_Prestigio                              2     15     7.5   16.16        0.00000010519 ***
Boa_Remuneracao                           2      4     2.1    4.41              0.01226 *  
Atuacao_Outras_Areas                      2      7     3.4    7.23              0.00074 ***
Usa_Computador_Propria_Casa               1      5     5.2   11.16              0.00084 ***
Usa_Computador_Casa_Amigos                1      2     1.6    3.50              0.06140 .  
Usa_Computador_Escola                     1      4     4.1    8.73              0.00316 ** 
Usa_Computador_Lan_House                  1     11    11.0   23.57        0.00000126672 ***
Usa_Computador_Centro_Inclusao_Digital    1      4     3.6    7.70              0.00557 ** 
Usa_Planilha_Eletrônica                   1      2     1.5    3.25              0.07154 .  
Usa_Banco_Dados                           1      7     7.0   15.11              0.00010 ***
Usa_Internet                              1      1     0.7    1.51              0.21946    
Usa_Jogos                                 1      2     2.2    4.70              0.03020 *  
Desenvolve_Paginas_Web                    1      1     1.1    2.41              0.12063    
Cria_Programas_Computador                 1      5     5.3   11.36              0.00076 ***
Residuals                              2942   1371     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Internet:

temp$Usa_Internet <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     19     6.4   13.74       0.000000006777 ***
Serie                                     5    136    27.2   58.44 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   17.94       0.000000017947 ***
Somente_Ensina_Software                   2      8     4.0    8.63              0.00018 ***
Pouca_Matematica                          2     16     7.9   16.92       0.000000049617 ***
Maioria_Homens                            2     22    11.0   23.55       0.000000000071 ***
Precisa_Saber_Usar_Computador             2      3     1.7    3.69              0.02506 *  
Precisa_Curso_Superior                    2     11     5.7   12.12       0.000005724763 ***
Familia_Gostaria_Computacao               2    150    75.0  160.87 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.4    3.01              0.04936 *  
Pouco_Lazer                               2      2     0.9    1.97              0.14007    
Da_Prestigio                              2     15     7.5   16.15       0.000000105907 ***
Boa_Remuneracao                           2      4     2.1    4.41              0.01228 *  
Atuacao_Outras_Areas                      2      7     3.4    7.23              0.00074 ***
Usa_Computador_Propria_Casa               1      5     5.2   11.16              0.00085 ***
Usa_Computador_Casa_Amigos                1      2     1.6    3.50              0.06146 .  
Usa_Computador_Escola                     1      4     4.1    8.72              0.00316 ** 
Usa_Computador_Lan_House                  1     11    11.0   23.56       0.000001273286 ***
Usa_Computador_Centro_Inclusao_Digital    1      4     3.6    7.69              0.00558 ** 
Usa_Planilha_Eletrônica                   1      2     1.5    3.25              0.07160 .  
Usa_Banco_Dados                           1      7     7.0   15.10              0.00010 ***
Usa_Jogos                                 1      2     2.0    4.29              0.03851 *  
Desenvolve_Paginas_Web                    1      1     1.1    2.29              0.13043    
Cria_Programas_Computador                 1      5     5.2   11.14              0.00086 ***
Residuals                              2943   1372     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Pouco_Lazer:

temp$Pouco_Lazer <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     20     6.7   14.40        0.00000000258 ***
Serie                                     5    137    27.4   58.87 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   18.08        0.00000001570 ***
Somente_Ensina_Software                   2      8     4.2    8.97              0.00013 ***
Pouca_Matematica                          2     16     8.2   17.58        0.00000002579 ***
Maioria_Homens                            2     21    10.5   22.57        0.00000000019 ***
Precisa_Saber_Usar_Computador             2      4     1.8    3.94              0.01949 *  
Precisa_Curso_Superior                    2     12     6.1   13.21        0.00000194364 ***
Familia_Gostaria_Computacao               2    152    75.8  163.11 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.5    3.28              0.03783 *  
Da_Prestigio                              2     15     7.7   16.53        0.00000007282 ***
Boa_Remuneracao                           2      4     2.2    4.63              0.00980 ** 
Atuacao_Outras_Areas                      2      7     3.3    7.17              0.00078 ***
Usa_Computador_Propria_Casa               1      6     5.9   12.66              0.00038 ***
Usa_Computador_Casa_Amigos                1      2     1.8    3.78              0.05202 .  
Usa_Computador_Escola                     1      4     3.9    8.40              0.00378 ** 
Usa_Computador_Lan_House                  1     11    11.4   24.49        0.00000078850 ***
Usa_Computador_Centro_Inclusao_Digital    1      3     3.5    7.45              0.00637 ** 
Usa_Planilha_Eletrônica                   1      2     1.7    3.58              0.05843 .  
Usa_Banco_Dados                           1      7     7.0   15.09              0.00010 ***
Usa_Jogos                                 1      2     2.0    4.36              0.03690 *  
Desenvolve_Paginas_Web                    1      1     1.1    2.39              0.12259    
Cria_Programas_Computador                 1      5     5.2   11.25              0.00081 ***
Residuals                              2975   1382     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Desenvolve_Paginas_Web:

temp$Desenvolve_Paginas_Web <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     20     6.7   14.40        0.00000000257 ***
Serie                                     5    137    27.4   58.89 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   18.08        0.00000001563 ***
Somente_Ensina_Software                   2      8     4.2    8.97              0.00013 ***
Pouca_Matematica                          2     16     8.2   17.58        0.00000002566 ***
Maioria_Homens                            2     21    10.5   22.58        0.00000000019 ***
Precisa_Saber_Usar_Computador             2      4     1.8    3.94              0.01947 *  
Precisa_Curso_Superior                    2     12     6.1   13.21        0.00000193679 ***
Familia_Gostaria_Computacao               2    152    75.8  163.15 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.5    3.28              0.03779 *  
Da_Prestigio                              2     15     7.7   16.53        0.00000007250 ***
Boa_Remuneracao                           2      4     2.2    4.63              0.00979 ** 
Atuacao_Outras_Areas                      2      7     3.3    7.18              0.00078 ***
Usa_Computador_Propria_Casa               1      6     5.9   12.67              0.00038 ***
Usa_Computador_Casa_Amigos                1      2     1.8    3.78              0.05199 .  
Usa_Computador_Escola                     1      4     3.9    8.40              0.00378 ** 
Usa_Computador_Lan_House                  1     11    11.4   24.50        0.00000078583 ***
Usa_Computador_Centro_Inclusao_Digital    1      3     3.5    7.45              0.00637 ** 
Usa_Planilha_Eletrônica                   1      2     1.7    3.58              0.05840 .  
Usa_Banco_Dados                           1      7     7.0   15.09              0.00010 ***
Usa_Jogos                                 1      2     2.0    4.36              0.03688 *  
Cria_Programas_Computador                 1      6     6.2   13.44              0.00025 ***
Residuals                              2976   1382     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Planilha_Eletrônica:

temp$Usa_Planilha_Eletrônica <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     20     6.7   14.41        0.00000000256 ***
Serie                                     5    137    27.4   58.90 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   18.09        0.00000001555 ***
Somente_Ensina_Software                   2      8     4.2    8.97              0.00013 ***
Pouca_Matematica                          2     16     8.2   17.59        0.00000002554 ***
Maioria_Homens                            2     21    10.5   22.58        0.00000000018 ***
Precisa_Saber_Usar_Computador             2      4     1.8    3.95              0.01945 *  
Precisa_Curso_Superior                    2     12     6.1   13.22        0.00000192992 ***
Familia_Gostaria_Computacao               2    152    75.8  163.20 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.5    3.28              0.03776 *  
Da_Prestigio                              2     15     7.7   16.54        0.00000007218 ***
Boa_Remuneracao                           2      4     2.2    4.64              0.00977 ** 
Atuacao_Outras_Areas                      2      7     3.3    7.18              0.00078 ***
Usa_Computador_Propria_Casa               1      6     5.9   12.67              0.00038 ***
Usa_Computador_Casa_Amigos                1      2     1.8    3.78              0.05196 .  
Usa_Computador_Escola                     1      4     3.9    8.40              0.00377 ** 
Usa_Computador_Lan_House                  1     11    11.4   24.50        0.00000078314 ***
Usa_Computador_Centro_Inclusao_Digital    1      3     3.5    7.46              0.00636 ** 
Usa_Banco_Dados                           1      8     8.4   18.03        0.00002237597 ***
Usa_Jogos                                 1      2     2.1    4.63              0.03155 *  
Cria_Programas_Computador                 1      6     6.3   13.63              0.00023 ***
Residuals                              2977   1383     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Computador_Casa_Amigos:

temp$Usa_Computador_Casa_Amigos <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     20     6.7   14.37        0.00000000269 ***
Serie                                     5    137    27.4   58.75 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   18.04        0.00000001626 ***
Somente_Ensina_Software                   2      8     4.2    8.95              0.00013 ***
Pouca_Matematica                          2     16     8.2   17.54        0.00000002668 ***
Maioria_Homens                            2     21    10.5   22.53        0.00000000019 ***
Precisa_Saber_Usar_Computador             2      4     1.8    3.94              0.01964 *  
Precisa_Curso_Superior                    2     12     6.1   13.18        0.00000199441 ***
Familia_Gostaria_Computacao               2    152    75.8  162.79 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.5    3.27              0.03807 *  
Da_Prestigio                              2     15     7.7   16.49        0.00000007521 ***
Boa_Remuneracao                           2      4     2.2    4.62              0.00989 ** 
Atuacao_Outras_Areas                      2      7     3.3    7.16              0.00079 ***
Usa_Computador_Propria_Casa               1      6     5.9   12.64              0.00038 ***
Usa_Computador_Escola                     1      5     4.8   10.30              0.00135 ** 
Usa_Computador_Lan_House                  1     10    10.1   21.64        0.00000343012 ***
Usa_Computador_Centro_Inclusao_Digital    1      3     3.1    6.76              0.00937 ** 
Usa_Banco_Dados                           1      8     8.0   17.09        0.00003667247 ***
Usa_Jogos                                 1      2     1.6    3.37              0.06635 .  
Cria_Programas_Computador                 1      6     5.9   12.60              0.00039 ***
Residuals                              2978   1386     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

Retirando variável Usa_Jogos:

temp$Usa_Jogos <- NULL
fit <- aov(opcao_computacao ~ ., data = temp)
knit_print(anova(fit))
Analysis of Variance Table

Response: opcao_computacao
                                         Df Sum Sq Mean Sq F value               Pr(>F)    
Ano                                       3     20     6.7   14.37         0.0000000027 ***
Serie                                     5    137    27.4   58.73 < 0.0000000000000002 ***
Fara_Curso_Superior                       2     17     8.4   18.03         0.0000000164 ***
Somente_Ensina_Software                   2      8     4.2    8.94              0.00013 ***
Pouca_Matematica                          2     16     8.2   17.53         0.0000000269 ***
Maioria_Homens                            2     21    10.5   22.52         0.0000000002 ***
Precisa_Saber_Usar_Computador             2      4     1.8    3.93              0.01968 *  
Precisa_Curso_Superior                    2     12     6.1   13.18         0.0000020070 ***
Familia_Gostaria_Computacao               2    152    75.8  162.71 < 0.0000000000000002 ***
Dificuldade_Emprego                       2      3     1.5    3.27              0.03813 *  
Da_Prestigio                              2     15     7.7   16.49         0.0000000758 ***
Boa_Remuneracao                           2      4     2.2    4.62              0.00991 ** 
Atuacao_Outras_Areas                      2      7     3.3    7.16              0.00079 ***
Usa_Computador_Propria_Casa               1      6     5.9   12.63              0.00038 ***
Usa_Computador_Escola                     1      5     4.8   10.29              0.00135 ** 
Usa_Computador_Lan_House                  1     10    10.1   21.63         0.0000034487 ***
Usa_Computador_Centro_Inclusao_Digital    1      3     3.1    6.76              0.00938 ** 
Usa_Banco_Dados                           1      8     8.0   17.08         0.0000368312 ***
Cria_Programas_Computador                 1      6     6.3   13.52              0.00024 ***
Residuals                              2979   1388     0.5                                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
plot(fit)

O próximo passo é identificar se há combinações de atributos que expliquem essa opção. Para isso será utilizado o algoritmo Apriori de mineração de regras de associação.

# regras = apriori(data = respostas[, 2:36], parameter = list(minlen=2, supp=0.1, conf=0.8, maxtime=600))
# regras.ordem <- sort(regras, by="lift")
# Encontrando as regras redundantes
# subset.matrix <- is.subset(regras.ordem, regras.ordem)
# subset.matrix[lower.tri(subset.matrix, diag = T)] = NA
# Vejam o que montamos até aqui
# subset.matrix[1:5,1:5]
# write(regras, file="regras.txt")
LS0tCnRpdGxlOiAiQW7DoWxpc2UgZGUgUXVlc3Rpb27DoXJpb3MgZG8gUHJvamV0byAnTWVuaW5hcyBuYSBDb21wdXRhw6fDo28nIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICBodG1sX2RvY3VtZW50OiBkZWZhdWx0Ci0tLQpgYGB7ciwgaW5jbHVkZT1GQUxTRX0Kcm0obGlzdCA9IGxzKCkpCm9wdGlvbnMoInNjaXBlbiI9MTAwLCAiZGlnaXRzIj0yKQoKIyBpbnN0YWxsLnBhY2thZ2VzKCJyZWFkeGwiKQpsaWJyYXJ5KHJlYWR4bCkKCiMgaW5zdGFsbC5wYWNrYWdlcygicmVhZHIiKQpsaWJyYXJ5KHJlYWRyKQoKI2luc3RhbGwucGFja2FnZXMoImFydWxlcyIpCmxpYnJhcnkoYXJ1bGVzKQoKIyBpbnN0YWxsLnBhY2thZ2VzKCJnZ3Bsb3QyIikKbGlicmFyeShnZ3Bsb3QyKQoKIyBpbnN0YWxsLnBhY2thZ2VzKCJyZXNoYXBlMiIpCmxpYnJhcnkocmVzaGFwZTIpCgojIGluc3RhbGwucGFja2FnZXMoImdyaWRFeHRyYSIpCmxpYnJhcnkoZ3JpZEV4dHJhKQoKIyBpbnN0YWxsLnBhY2thZ2VzKCJzdHJpbmdyIikKbGlicmFyeShzdHJpbmdyKQoKIyBpbnN0YWxsLnBhY2thZ2VzKCJrbml0ciIpCmxpYnJhcnkoa25pdHIpCgojIGluc3RhbGwucGFja2FnZXMoImFncmljb2xhZSIpCmxpYnJhcnkoYWdyaWNvbGFlKQpgYGAKCkVzdGUgZXN0dWRvIMOpIHVtYSBhbsOhbGlzZSBlc3RhdMOtc3RpY2Egc29icmUgbyBwcm9qZXRvIFtNZW5pbmFzIG5hIENvbXB1dGHDp8Ojb10oaHR0cDovL21lbmluYXMuY2ljLnVuYi5ici8pLCBjb29yZGVuYWRvIHBlbGEgcHJvZmVzc29yYSBEcmEuIE1hcmlzdGVsYSBUZXJ0byBlIEhvbGFuZGEgZXQgYWwuIAoKYGBge3J9CnJlc3Bvc3RhcyA8LSByZWFkX2V4Y2VsKCJyYXcueGxzeCIsIHNoZWV0ID0gInVuaWZpY2FkbyIsIG5hID0gIiIpCgpyZXNwb3N0YXMkUTEgPC0gTlVMTApyZXNwb3N0YXMkUTIgPC0gTlVMTApyZXNwb3N0YXMkU2VyaWUgPC0gc3RyaW5ncjo6c3RyX3RyaW0ocmVzcG9zdGFzJFNlcmllLCBzaWRlID0gImJvdGgiKQpyZXNwb3N0YXMgPC0gYXMuZGF0YS5mcmFtZShsYXBwbHkocmVzcG9zdGFzLCBhcy5mYWN0b3IpKQpvcGNhbyA8LSBkYXRhLmZyYW1lKEZhcmFfQ29tcHV0YWNhbyA9IGxldmVscyhyZXNwb3N0YXMkRmFyYV9Db21wdXRhY2FvKSwgb3BjYW9fY29tcHV0YWNhbyA9IGMoMSwgMiwgMykpCnJlc3Bvc3RhcyA8LSBtZXJnZShyZXNwb3N0YXMsIG9wY2FvKQoKcmVzcG9zdGFzIDwtIHJlc3Bvc3Rhc1ssIGMoMzcsIDE6MzYpXQpgYGAKCkR1cmFudGUgb3MgYW5vcyBkZSAyMDExIGEgMjAxNCwgZm9yYW0gZW50cmV2aXN0YWRvcyBgciBucm93KHJlc3Bvc3RhcylgIGFsdW5vcyBkbyBuw612ZWwgZnVuZGFtZW50YWwsIG3DqWRpbyBlIHN1cGVyaW9yLCBzb2JyZSBvIGN1cnNvIHN1cGVyaW9yIHF1ZSBwcmV0ZW5kaWFtIHNlZ3Vpci4gCgpPIHF1ZXN0aW9uw6FyaW8gcG9zc3VpIDE0IHF1ZXN0w7VlcyBxdWUgZm9yYW0gZGVzbWVtYnJhZGFzIGVtIDM2IHZhcmnDoXZlaXMuCgpPIHByaW1laXJvIHBhc3NvIGRvIGVzdHVkbyBmb2kgcmVjdXBlcmFyIGFzIHJlc3Bvc3RhcyBkb3MgcXVlc3Rpb27DoXJpb3MuIAoKTyBzZWd1bmRvIHBhc3NvIGVudm9sdmV1IGEgcHJlcGFyYcOnw6NvIGRvcyBkYWRvcy4gRW0gcHJpbWVpcm8gbHVnYXIsIG9zIHF1ZXN0aW9uw6FyaW9zIGZvcmFtIHVuaWZpY2Fkb3MgZW0gdW1hIMO6bmljYSB0YWJlbGEsIGEgZmltIGRlIGZhY2lsaXRhciBhIG1hbmlwdWxhw6fDo28uCgpDb21vIG8gZXN0dWRvIGNvbnNpc3RlIGVtIGlkZW50aWZpY2FyIGFzIG1vdGl2YcOnw7VlcyBkYXMgYWx1bmFzIGVudHJldmlzdGFkYXMgZW0gc2VndWlyIG91IG7Do28gdW1hIGNhcnJlaXJhIGVtIENpw6puY2lhIGRhIENvbXB1dGHDp8OjbywgZm9yYW0gcmV0aXJhZG9zIG9zIGByIG5yb3cocmVzcG9zdGFzW3Jlc3Bvc3RhcyRTZXhvID09ICdNJyxdKWAgZW50cmV2aXN0YWRvcyBkZSBzZXhvIG1hc2N1bGluby4KCmBgYHtyfQpyZXNwb3N0YXMgPC0gc3Vic2V0KHJlc3Bvc3RhcywgcmVzcG9zdGFzJFNleG8gPT0gIkYiKQpyZXNwb3N0YXMkU2V4byA8LSBOVUxMCmBgYAoKU8OjbyBlbmNvbnRyYWRhcyBhcyBzZWd1aW50ZXMgZGlzdHJpYnVpw6fDtWVzIGRlIHPDqXJpZSBuYSBhbW9zdHJhOgoKYGBge3J9CnNlcmllcyA8LSBhZ2dyZWdhdGUoeCA9IGxpc3QoUXVhbnRpZGFkZSA9IHJlc3Bvc3RhcyRTZXJpZSksIGJ5ID0gbGlzdChBbm8gPSByZXNwb3N0YXMkQW5vLCBTZXJpZSA9IHJlc3Bvc3RhcyRTZXJpZSksIEZVTj1sZW5ndGgpCgpwb3JfYW5vIDwtIGFnZ3JlZ2F0ZSh4ID0gbGlzdChUb3RhbCA9IHJlc3Bvc3RhcyRTZXJpZSksIGJ5ID0gbGlzdChBbm8gPSByZXNwb3N0YXMkQW5vKSwgRlVOPWxlbmd0aCkKCnNlcmllcyA8LSBtZXJnZShzZXJpZXMsIHBvcl9hbm8pCgpzZXJpZXMkUGVyY2VudHVhbCA8LSBzZXJpZXMkUXVhbnRpZGFkZSAqIDEwMCAvIHNlcmllcyRUb3RhbAoKcCA9IGdncGxvdChkYXRhID0gc2VyaWVzLCBhZXMoeCA9ICIiLCB5ID0gUGVyY2VudHVhbCwgZmlsbCA9IFNlcmllKSkgIApwID0gcCArIGdlb21fYmFyKHdpZHRoID0gMSwgc3RhdCA9ICJpZGVudGl0eSIpCnAgPSBwICsgZmFjZXRfZ3JpZChmYWNldHMgPSAuIH4gQW5vKQpwID0gcCArIGNvb3JkX3BvbGFyKHRoZXRhID0gInkiLCBzdGFydCA9IDApIApwID0gcCArIHNjYWxlX3hfZGlzY3JldGUoKQpwID0gcCArIHhsYWIoIiIpICsgeWxhYigiIikgKyBsYWJzKGZpbGw9IkFubyIpIApwID0gcCArIGdndGl0bGUoIlBlcmNlbnR1YWwgZGUgRW50cmV2aXN0YWRhcyBwb3IgU8OpcmllIGVtIGNhZGEgQW5vIikKcApgYGAKCkFzIGFsdW5hcyByZXNwb25kZXJhbSBkYSBzZWd1aW50ZSBmb3JtYSBzb2JyZSBhIMOhcmVhIHF1ZSBnb3N0YXJpYW0gZGUgY3Vyc2FyOgoKYGBge3J9CmN1cnNvcyA8LSBhZ2dyZWdhdGUoeCA9IGxpc3QoUXVhbnRpZGFkZSA9IHJlc3Bvc3RhcyRGYXJhX0N1cnNvX1N1cGVyaW9yKSwgYnkgPSBsaXN0KEFubyA9IHJlc3Bvc3RhcyRBbm8sIEZhcmFfQ3Vyc29fU3VwZXJpb3IgPSByZXNwb3N0YXMkRmFyYV9DdXJzb19TdXBlcmlvciksIEZVTj1sZW5ndGgpCgpwb3JfYW5vIDwtIGFnZ3JlZ2F0ZSh4ID0gbGlzdChUb3RhbCA9IHJlc3Bvc3RhcyRGYXJhX0N1cnNvX1N1cGVyaW9yKSwgYnkgPSBsaXN0KEFubyA9IHJlc3Bvc3RhcyRBbm8pLCBGVU49bGVuZ3RoKQoKY3Vyc29zIDwtIG1lcmdlKGN1cnNvcywgcG9yX2FubykKCmN1cnNvcyRQZXJjZW50dWFsIDwtIGN1cnNvcyRRdWFudGlkYWRlICogMTAwIC8gY3Vyc29zJFRvdGFsCgpwID0gZ2dwbG90KGRhdGEgPSBjdXJzb3MsIGFlcyh4ID0gIiIsIHkgPSBQZXJjZW50dWFsLCBmaWxsID0gRmFyYV9DdXJzb19TdXBlcmlvcikpICAKcCA9IHAgKyBnZW9tX2Jhcih3aWR0aCA9IDEsIHN0YXQgPSAiaWRlbnRpdHkiKQpwID0gcCArIGZhY2V0X2dyaWQoZmFjZXRzID0gLiB+IEFubykKcCA9IHAgKyBjb29yZF9wb2xhcih0aGV0YSA9ICJ5Iiwgc3RhcnQgPSAwKSAKcCA9IHAgKyBzY2FsZV94X2Rpc2NyZXRlKCkKcCA9IHAgKyB4bGFiKCIiKSArIHlsYWIoIiIpICsgbGFicyhmaWxsPSJBbm8iKSAKcCA9IHAgKyBnZ3RpdGxlKCJQZXJjZW50dWFsIGRlIEVudHJldmlzdGFkYXMgcG9yIMOBcmVhIGRlIEludGVyZXNzZSIpCnAKYGBgCgpQb2RlbW9zIG9ic2VydmFyIHF1ZSBvcyBwZXJjZW50dWFpcyBwZXJtYW5lY2VtIGFvIGxvbmdvIGRvcyBhbm9zLCBzZW5kbyBhIHByZWZlcsOqbmNpYSBwb3IgQ2nDqm5jaWFzIEJpb2zDs2dpY2FzIGUgZGUgU2HDumRlIGVtIHRvcm5vIGRlIGByIHJvdW5kKGN1cnNvcyRQZXJjZW50dWFsW2N1cnNvcyRBbm8gPT0gMjAxMSAmIGN1cnNvcyRGYXJhX0N1cnNvX1N1cGVyaW9yID09ICdCaW9sb2dpY2FzIGUgU2F1ZGUnXSlgXCUsIHBhcmEgSHVtYW5hcyBjZXJjYSBkZSBgciByb3VuZChjdXJzb3MkUGVyY2VudHVhbFtjdXJzb3MkQW5vID09IDIwMTEgJiBjdXJzb3MkRmFyYV9DdXJzb19TdXBlcmlvciA9PSAnSHVtYW5hcyddKWBcJSBlIHBhcmEgRXhhdGFzIHByw7N4aW1vIGEgYHIgcm91bmQoY3Vyc29zJFBlcmNlbnR1YWxbY3Vyc29zJEFubyA9PSAyMDExICYgY3Vyc29zJEZhcmFfQ3Vyc29fU3VwZXJpb3IgPT0gJ0V4YXRhcyddKWBcJS4KCkEgb3BpbmnDo28gZGFzIGFsdW5hcyBzb2JyZSBvIGN1cnNhciBDacOqbmNpYSBkYSBDb21wdXRhw6fDo28gw6kgcmVwcmVzZW50YWRhIG5vcyBncsOhZmljb3MgYSBzZWd1aXI6CgpgYGB7cn0KY29tcCA8LSBhZ2dyZWdhdGUoeCA9IGxpc3QoUXVhbnRpZGFkZSA9IHJlc3Bvc3RhcyRGYXJhX0NvbXB1dGFjYW8pLCBieSA9IGxpc3QoQW5vID0gcmVzcG9zdGFzJEFubywgRmFyYV9Db21wdXRhY2FvID0gcmVzcG9zdGFzJEZhcmFfQ29tcHV0YWNhbyksIEZVTj1sZW5ndGgpCgpwb3JfYW5vIDwtIGFnZ3JlZ2F0ZSh4ID0gbGlzdChUb3RhbCA9IHJlc3Bvc3RhcyRGYXJhX0NvbXB1dGFjYW8pLCBieSA9IGxpc3QoQW5vID0gcmVzcG9zdGFzJEFubyksIEZVTj1sZW5ndGgpCgpjb21wIDwtIG1lcmdlKGNvbXAsIHBvcl9hbm8pCgpjb21wJFBlcmNlbnR1YWwgPC0gY29tcCRRdWFudGlkYWRlICogMTAwIC8gY29tcCRUb3RhbAoKcCA9IGdncGxvdChkYXRhID0gY29tcCwgYWVzKHggPSAiIiwgeSA9IFBlcmNlbnR1YWwsIGZpbGwgPSBGYXJhX0NvbXB1dGFjYW8pKSAgCnAgPSBwICsgZ2VvbV9iYXIod2lkdGggPSAxLCBzdGF0ID0gImlkZW50aXR5IikKcCA9IHAgKyBmYWNldF9ncmlkKGZhY2V0cyA9IC4gfiBBbm8pCnAgPSBwICsgY29vcmRfcG9sYXIodGhldGEgPSAieSIsIHN0YXJ0ID0gMCkgCnAgPSBwICsgc2NhbGVfeF9kaXNjcmV0ZSgpCnAgPSBwICsgeGxhYigiIikgKyB5bGFiKCIiKSArIGxhYnMoZmlsbD0iQW5vIikgCnAgPSBwICsgZ2d0aXRsZSgiUGVyY2VudHVhbCBkZSBFbnRyZXZpc3RhZGFzIHBvciBJbnRlcmVzc2UgZW0gQ29tcHV0YcOnw6NvIikKcApgYGAKClNlcsOhIHJlYWxpemFkYSBhIHNlZ3VpciB1bWEgYW7DoWxpc2UgZGUgdmFyacOibmNpYSwgbm8gaW50dWl0byBkZSBpZGVudGlmaWNhciwgcGVyZ3VudGEgYSBwZXJndW50YSwgc2UgYXMgcXVhbnRpZGFkZXMgbcOpZGlhcyBkYXMgcmVzcG9zdGFzIHPDo28gZXN0YXRpc3RpY2FtZW50ZSBkaWZlcmVudGVzIG91IHNlIGEgZGlmZXJlbsOnYSBpZGVudGlmaWNhZGEgbmFzIG3DqWRpYXMgdHJhdGEtc2UgZGUgcnXDrWRvLiAKCkEgYW7DoWxpc2UgZGUgdmFyacOibmNpYSBuw6NvIHNlcsOhIGNvbXBsZXRhIHNlbSB1bSB0ZXN0ZSBkZSBjb21wYXJhw6fDo28gZGUgbcOpZGlhczogYXDDs3MgaWRlbnRpZmljYXIgZGlmZXJlbsOnYXMgcmVhaXMgZW50cmUgYXMgcmVzcG9zdGFzLCBzZXLDoSBlZmV0dWFkbyBvIHRlc3RlIGRlIFR1a2V5IHF1ZSBkaXLDoSBxdWFpcyBkb3MgaXRlbnMgc8OjbyBkaWZlcmVudGVzIGVudHJlIHNpLgoKUGFyYSBxdWUgc2VqYSBmZWl0YSBhIGFuw6FsaXNlIGRlIHZhcmnDom5jaWEsIGEgYW1vc3RyYSBkZXZlIGF0ZW5kZXIgY2VydGFzIHByZXNzdXBvc2nDp8O1ZXMgYsOhc2ljYXM6CjEpIG9zIGVycm9zIHPDo28gdmFyacOhdmVpcyBhbGVhdMOzcmlhcyBpbmRlcGVuZGVudGVzOwoyKSBhIHZhcmnDom5jaWEgw6kgY29uc3RhbnRlOwozKSBhIGRpc3RyaWJ1acOnw6NvIGRvcyBlcnJvcyDDqSBub3JtYWwgb3UgYXByb3hpbWFkYW1lbnRlIG5vcm1hbC4KCk9zIGdyw6FmaWNvcyBxdWUgYXDDs2lhbSBlc3NhcyBwcmVzc3Vwb3Npw6fDtWVzIHNlcsOjbyBtb3ZpZG9zIHBhcmEgbyBmaW0gZGEgcMOhZ2luYS4KCkNvbW8gZXhlbXBsbywgc2Vyw6EgZWZldHVhZGEgaXNvbGFkYW1lbnRlIGEgYW7DoWxpc2UgZGUgdmFyacOibmNpYSBkbyBhdHJpYnV0byAqKm9wY2FvX2NvbXB1dGFjYW8qKiBlbSByZWxhw6fDo28gYW8gYXRyaWJ1dG8gKipBbm8qKiwgY29tIG9zIGFub3MgY29tbyB0cmF0YW1lbnRvcy4gQSB2YXJpw6F2ZWwgb2JzZXJ2YWRhIMOpIG8gaW50ZXJlc3NlIGRvIGFsdW5vIHBvciBvcHRhciBwZWxvIGN1cnNvIGRlIGNpw6puY2lhIGRhIGNvbXB1dGHDp8Ojbywgc2VuZG8gYXRyaWJ1w61kbyBvIHZhbG9yIDEgbm8gY2FzbyBlbSBxdWUgYSBlc3R1ZGFudGUgcmVzcG9uZGV1IHF1ZSBuw6NvIGZhcsOhIHZlc3RpYnVsYXIgcGFyYSBjb21wdXRhw6fDo28sIDIgc2UgYWluZGEgZXN0w6EgZW0gZMO6dmlkYSBlIDMgc2UgaW5mb3Jtb3UgcXVlIGlyw6Egb3B0YXIgcG9yIGNvbXB1dGHDp8Ojby4KCmBgYHtyfQp0ZW1wIDwtIGRhdGEuZnJhbWUoVHJhdGFtZW50byA9IHJlc3Bvc3Rhc1ssIDNdLCBPcGNhb19Db21wdXRhY2FvID0gcmVzcG9zdGFzWywgMV0pCgpmaXQgPC0gYW92KE9wY2FvX0NvbXB1dGFjYW8gfiBUcmF0YW1lbnRvLCBkYXRhID0gdGVtcCkKa25pdF9wcmludChhbm92YShmaXQpKQpjYXQoIlxuIikKCmtuaXRfcHJpbnQoSFNELnRlc3QoZml0LCAnVHJhdGFtZW50bycpKQoKcGFyKG1mcm93PWMoMiwyKSkKcGxvdChmaXQpCmBgYAoKQSBwYXJ0aXIgZG8gcC12YWxvciBkbyB0cmF0YW1lbnRvICoqQW5vKiogKFByKD5GKSkgYWJhaXhvIGRlIDUlLCBow6EgZXZpZMOqbmNpYXMgZGUgdW1hIGRpZmVyZW7Dp2EgbmEgcXVhbnRpZGFkZSBkZSBhbHVuYXMgcXVlIG9wdGFtIHBvciBjb21wdXRhw6fDo28gZGV2aWRvIMOgIHBhc3NhZ2VtIGRvIHRlbXBvLgoKQ29udHVkbywgYW8gZWZldHVhciBvIHRlc3RlIGRlIFR1a2V5LCBwZXJjZWJlbW9zIHF1ZSBuw6NvIGjDoSBkaWZlcmVuw6dhIHJlYWwgZW50cmUgbyBhbm8gZGUgMjAxMSBlIG9zIGRlbWFpcy4gRGVzdGEgZm9ybWEsIGNvbmNsdcOtbW9zIHF1ZSBow6EgY29uc3TDom5jaWEgbmEgaW5kZWNpc8OjbyBkYXMgYWx1bmFzLgoKQSBzZWd1aXIgc2Vyw6NvIGFwcmVzZW50YWRhcyBhcyBhbsOhbGlzZXMgZGUgdmFyacOibmNpYSBkb3Mgb3V0cm9zIGF0cmlidXRvcyBjb2xldGFkb3MgbmFzIGVudHJldmlzdGFzLgoKYGBge3J9Cgpmb3IgKGkgaW4gNDpuY29sKHJlc3Bvc3RhcykpIHsKICB0ZW1wIDwtIGRhdGEuZnJhbWUoVHJhdGFtZW50byA9IHJlc3Bvc3Rhc1ssIGldLCBPcGNhb19Db21wdXRhY2FvID0gcmVzcG9zdGFzWywgMV0pCiAgCiAgbm9tZSA8LSBjb2xuYW1lcyhyZXNwb3N0YXMpW2ldCiAgY2F0KHBhc3RlKCJcblRyYXRhbWVudG86Iiwgbm9tZSwgIlxuIikpICAKICBjYXQoIlxuIikKICAKICBmaXQgPC0gYW92KE9wY2FvX0NvbXB1dGFjYW8gfiBUcmF0YW1lbnRvLCBkYXRhID0gdGVtcCkKICBrbml0X3ByaW50KGFub3ZhKGZpdCkpCiAgY2F0KCJcbiIpCgogIGtuaXRfcHJpbnQoSFNELnRlc3QoZml0LCAnVHJhdGFtZW50bycpKQogIAogICMgYXNzaWduKG5vbWUsIHRlbXApCgogIHBhcihtZnJvdz1jKDIsMikpICAKICBwbG90KGZpdCkKfQpgYGAKCgpBIHBhcnRpciBkYSBhbsOhbGlzZSBkZSB2YXJpw6JuY2lhIGUgZG8gdGVzdGUgZGUgVHVrZXkgZG9zIGF0cmlidXRvcywgaWRlbnRpZmljYW1vcyBvIHNlZ3VpbnRlOgoKU29icmUgbyBhdHJpYnV0byAqKlPDqXJpZSoqLCBkZXZlbW9zIGRlc2NhcnRhciBhIGluZm9ybWHDp8OjbyBzb2JyZSBhcyBlc3R1ZGFudGVzIGRlIFN1cGxldGl2bywgZGV2aWRvIMOgIGJhaXhhIHF1YW50aWRhZGUgZGUgcmVzcG9uZGVudGVzLiBOb3JtYWxtZW50ZSBzZSBkZXNjYXJ0YW0gdHJhdGFtZW50b3MgY29tIG1lbm9zIGRlIDMwIG9jb3Jyw6puY2lhcy4gUG9kZW1vcyBwZXJjZWJlciBkb2lzIGdydXBvczogZG8gRW5zaW5vIEZ1bmRhbWVudGFsIGF0w6kgbyBTZWd1bmRvIEFubyBow6EgdW1hIHRlbmTDqm5jaWEgbGV2ZW1lbnRlIHBvc2l0aXZhIGVtIHJlbGHDp8OjbyBhbyBjdXJzbyBkZSBjb21wdXRhw6fDo287IHBvciBvdXRybyBsYWRvLCBhbHVuYXMgZG8gVGVyY2Vpcm8gQW5vIGUgcXVlIGrDoSBjdXJzYW0gbyBOw612ZWwgU3VwZXJpb3IgcG9zc3VlbSBsZXZlIHJlamVpw6fDo28gcGVsbyBjdXJzby4KCkVtIHJlbGHDp8OjbyDDoCBpbnRlbsOnw6NvIGRlIGZhemVyIHVtIGN1cnNvIHN1cGVyaW9yLCBhdHJpYnV0byAqKkZhcmFfQ3Vyc29fU3VwZXJpb3IqKiwgYXMgZXN0dWRhbnRlcyBxdWUgaW5mb3JtYXJhbSBwcmVkaWxlw6fDo28gcG9yIEV4YXRhcywgQmlvbMOzZ2ljYXMgZSBTYcO6ZGUgcG9zc3VlbSB1bWEgbGV2ZSB0ZW5kw6puY2lhIGEgb3B0YXIgcG9yIGNvbXB1dGHDp8OjbywgZW5xdWFudG8gYXMgcXVlIG1hcmNhcmFtIEh1bWFuYXMgdGVtIGTDunZpZGEgc29icmUgdW1hIGNhcnJlaXJhIGVtIGNvbXB1dGHDp8Ojby4KCk8gYXRyaWJ1dG8gKipTb21lbnRlX0Vuc2luYV9Tb2Z0d2FyZSoqIG1vc3RyYSBxdWUgYXMgZXN0dWRhbnRlcyBxdWUgYWNyZWRpdGFtIGVtIHRhbCBhZmlybWHDp8OjbyB0ZW0gdGVuZMOqbmNpYSBhIG9wdGFyIHBvciB1bSBjdXJzbyBkZSBjb21wdXRhw6fDo28sIGVucXVhbnRvIGFzIHF1ZSBhY3JlZGl0YW0gbm8gY29udHLDoXJpbyBvdSBuw6NvIHRlbSBjZXJ0ZXphIGZpY2FyYW0gZW0gZMO6dmlkYSBzb2JyZSBjdXJzYXIgY29tcHV0YcOnw6NvLgoKVW0gZG9zIHJlc3VsdGFkb3MgbWFpcyBkZXNjb25jZXJ0YW50ZXMgcmVmZXJlLXNlIGFvIGF0cmlidXRvICoqUG91Y2FfTWF0ZW1hdGljYSoqOiBhcGVzYXIgZGEgbWFpb3JpYSBkYXMgZW50cmV2aXN0YWRhcyBhY3JlZGl0YXIgZGUgcXVlIG8gY3Vyc28gZGUgY29tcHV0YcOnw6NvIGJhc2VpYS1zZSBlbSBtdWl0byBjb250ZcO6ZG8gbWF0ZW3DoXRpY28sIHVtYSBxdWFudGlkYWRlIGNvbnNpZGVyw6F2ZWwgZGUgcmVzcG9uZGVudGVzIGRpc2NvcmRhLiBPIGVsZW1lbnRvIGNvbnRyYWRpdMOzcmlvIMOpIHF1ZSBlc3RhcyDDumx0aW1hcyB0ZW0gY2VydGEgdGVuZMOqbmNpYSBlbSBzZWd1aXIgdW1hIGNhcnJlaXJhIGVtIGNvbXB1dGHDp8OjbyEKCk91dHJvIHJlc3VsdGFkbyBjb25mbGl0YW50ZSBlc3TDoSByZWxhY2lvbmFkbyDDoCBhZmlybWHDp8OjbyBkZSBxdWUgbm9zIGN1cnNvcyBkZSBjb21wdXRhw6fDo28gaMOhIG11aXRvcyBob21lbnMsIGF0cmlidXRvICoqTWFpb3JpYV9Ib21lbnMqKi4gQXMgZW50cmV2aXN0YWRhcyBxdWUgZGlzY29yZGFtIGRlc3NhIGFmaXJtYcOnw6NvIHByZXRlbmRlbSBjdXJzYXIgY2nDqm5jaWEgZGEgY29tcHV0YcOnw6NvLgoKU29icmUgbyBkb23DrW5pbyBkZSB1c28gZG8gY29tcHV0YWRvciBzZXIgdW0gcHLDqS1yZXF1aXNpdG8gcGFyYSBvIGN1cnNvIGRlIGNvbXB1dGHDp8OjbywgYXRyaWJ1dG8gKipQcmVjaXNhX1NhYmVyX1VzYXJfQ29tcHV0YWRvcioqLCBhIGRlY2lzw6NvIHNvYnJlIGN1cnNhciBvdSBuw6NvIGNpw6puY2lhIGRhIGNvbXB1dGHDp8OjbyBmaWNvdSBlcXVpbGlicmFkYSBlbSByZWxhw6fDo28gYSBlc3NlIHF1ZXNpdG8uCgpPIGF0cmlidXRvICoqUHJlY2lzYV9DdXJzb19TdXBlcmlvcioqIGVzdMOhIHJlbGFjaW9uYWRvIMOgIG5lY2Vzc2lkYWRlIGRlIHVtYSBncmFkdWHDp8OjbyBwYXJhIGV4ZXJjZXIgYSBwcm9maXNzw6NvIGRlIGNpZW50aXN0YSBkYSBjb21wdXRhw6fDo28uIEFzIGVzdHVkYW50ZXMgcXVlIGFjcmVkaXRhbSBuZXNzYSBhZmlybWF0aXZhIHRlbSB1bWEgbGV2ZSB0ZW5kw6puY2lhIGEgb3B0YXIgcGVsbyBjdXJzbyBkZSBjb21wdXRhw6fDo28uIErDoSBhcyBxdWUgbsOjbyBhY3JlZGl0YW0gb3UgdGVtIGTDunZpZGEgZXN0w6NvIGluZGVjaXNhcyBzb2JyZSBvIGN1cnNhciBjb21wdXRhw6fDo28uCgpPIGF0cmlidXRvIG1haXMgbWFyY2FudGUgbmVzdGUgZXN0dWRvIGZvaSAqKkZhbWlsaWFfR29zdGFyaWFfQ29tcHV0YWNhbyoqLiBOZXNzZSwgw6kgcG9zc8OtdmVsIHBlcmNlYmVyIGNsYXJhbWVudGUgYSBpbmZsdcOqbmNpYSBmYW1pbGlhciBuYSBkZWNpc8OjbyBkbyBjdXJzbyBzdXBlcmlvcjogZXN0dWRhbnRlcyBxdWUgYWNyZWRpdGFtIHF1ZSBhIGZhbcOtbGlhIGZpY2FyaWEgZmVsaXogY2FzbyBlbGFzIG9wdGFzc2VtIHBvciBjb21wdXRhw6fDo28gdGVtIHVtYSBmb3J0ZSB0ZW5kw6puY2lhIGVtIHJlYWxtZW50ZSBlc2NvbGhlciBvIGN1cnNvLiBBcyBlbnRyZXZpc3RhZGFzIHF1ZSBhY3JlZGl0YW0gcXVlIGEgZmFtw61saWEgbsOjbyBhcG9pYXJpYSBhIGVzY29saGEgZGVzc2UgY3Vyc28gdGVtIHVtYSB0ZW5kw6puY2lhIGEgcmVqZWl0YXIgYSBjb21wdXRhw6fDo28uIEFzIHF1ZSBuw6NvIHRlbSBjZXJ0ZXphIGRhIG9waW5pw6NvIGRhIGZhbcOtbGlhIHRhbWLDqW0gbsOjbyB0ZW0gY2VydGV6YSBzb2JyZSBvIGRlc2VqbyBkZSBzZWd1aXIgZXNzYSBjYXJyZWlyYS4KCk8gYXRyaWJ1dG8gKipEaWZpY3VsZGFkZV9FbXByZWdvKiosIG9yaWdpbmEtc2UgZGEgcGVyY2Vww6fDo28gZGFzIGVzdHVkYW50ZXMgZGUgcXVlIHVtYSBwZXNzb2EgcXVlIHRyYWJhbGhhIG5hIMOhcmVhIGRlIGNvbXB1dGHDp8OjbyB0ZW0gZGlmaWN1bGRhZGVzIGVtIGVtcHJlZ2FyLXNlLiBIb3V2ZSBwb3VjYSBxdWFudGlkYWRlIGRlIGVudHJldmlzdGFkYXMgcXVlIGFjcmVkaXRhdmEgbmVzc2EgYWZpcm1hw6fDo28gbWFzLCBubyBnZXJhbCwgYXMgZXN0dWRhbnRlcyBxdWUgZmljYXJhbSBpbmRlY2lzYXMgc29icmUgY3Vyc2FyIGNvbXB1dGHDp8Ojby4KCk8gYXRyaWJ1dG8gKipQb3Vjb19MYXplcioqLCBvcmlnaW7DoXJpbyBkYSBwZXJndW50YSAiUXVlbSB0cmFiYWxoYSBjb20gY29tcHV0YcOnw6NvIHRlbSBwb3VjYXMgaG9yYXMgZGUgbGF6ZXI/IiwgdGV2ZSByZXN1bHRhZG9zIHNlbWVsaGFudGVzIGFvIGF0cmlidXRvICoqRGlmaWN1bGRhZGVfRW1wcmVnbyoqLCBwZXJjZWJlbmRvLXNlIHVtYSBmb3J0ZSBpbmRlY2lzw6NvIG5hIG9ww6fDo28gZG8gY3Vyc28sIGluZGVwZW5kZW50ZW1lbnRlIGRhIHBlcmNlcMOnw6NvIGRlIHF1YW50aWRhZGUgZGUgbGF6ZXIuCgpPcyBhdHJpYnV0b3MgKipVc2FfQ3JpYXRpdmlkYWRlKiosICoqRGFfUHJlc3RpZ2lvKiosICoqQm9hX1JlbXVuZXJhY2FvKiogZSAqKkF0dWFjYW9fT3V0cmFzX0FyZWFzKiogcGFyZWNlbS1zZSBtdWl0byBjb20gb3MgYXRyaWJ1dG9zICoqRGlmaWN1bGRhZGVfRW1wcmVnbyoqIGUgKipQb3Vjb19MYXplcioqLCBkZW5vdGFuZG8gcXVlIGFzIGVudHJldmlzdGFkYXMgYWluZGEgbsOjbyBwcmVvY3VwYW0tc2UgY29tIGVzc2VzIGF0cmlidXRvcyBuYSBob3JhIGRlIGVzY29saGVyIG8gY3Vyc28gc3VwZXJpb3IuCgpPIGF0cmlidXRvICoqVXNhX0NvbXB1dGFkb3JfUHJvcHJpYV9DYXNhKiosIHF1ZSDDqSBhdXRvLWV4cGxpY2F0aXZvLCBtb3N0cmEgcXVlIGFsdW5hcyBxdWUgbsOjbyB1c2FtIG91IG7Do28gcG9zc3VlbSBvIGNvbXB1dGFkb3IgZW0gc3VhcyBjYXNhcyBlc3TDo28gbXVpdG8gcHJvcGVuc2FzIGEgZmF6ZXIgdW0gY3Vyc28gZGUgY29tcHV0YcOnw6NvISBBcyBlc3R1ZGFudGVzIHF1ZSB1c2FtIGRvIGVxdWlwYW1lbnRvIGVtIHNldSBkb21pY8OtbGlvIG1vc3RyYW0tc2UgaW5kZWNpc2FzIHNvYnJlIGEgb3DDp8OjbyBwZWxvIGN1cnNvLgoKT3MgYXRyaWJ1dG9zICoqVXNhX0NvbXB1dGFkb3JfQ2FzYV9QYXJlbnRlcyoqIGUgKipVc2FfQ29tcHV0YWNhb19DYXNhX0FtaWdvcyoqIHRlbSBwb3VjYSByZWxldsOibmNpYSBuYSBkZWNpc8OjbyBwb3IgdW0gY3Vyc28gZGUgY29tcHV0YcOnw6NvLgoKTyBuw6NvIHVzbyBkbyBjb21wdXRhZG9yIG5hIGVzY29sYSwgYXRyaWJ1dG8gKipVc2FfQ29tcHV0YWRvcl9Fc2NvbGEqKiBnZXJhIHVtIGVmZWl0byBpbnZlcnNvLCBpc3RvIMOpLCBhbHVuYXMgcXVlIG7Do28gdXNhbSBvIGVxdWlwYW1lbnRvIGVtIGF1bGEgbW9zdHJhbSBsZXZlIHRlbmTDqm5jaWEgZW0gb3B0YXIgcG9yIGNvbXB1dGHDp8Ojby4KClVzYXIgb3UgbsOjbyB1c2FyIG8gY29tcHV0YWRvciBubyB0cmFiYWxobywgYXRyaWJ1dG8gKipVc2FfQ29tcHV0YWRvcl9UcmFiYWxobyoqLCBwYXJlY2UgbsOjbyB0ZXIgcmVsZXbDom5jaWEgbmEgZXNjb2xoYSBkbyBjdXJzbyBkZSBjb21wdXRhw6fDo28uCgpVc2FyIG8gY29tcHV0YWRvciBlbSB1bWEgKkxhbiBIb3VzZSogdGVtIHVtIGVmZWl0byBwb3NpdGl2byBuYSBvcMOnw6NvIHBlbG8gY3Vyc28gZGUgY29tcHV0YcOnw6NvLiAKClVzYXIgb3UgbsOjbyB1c2FyIG8gY29tcHV0YWRvciBuYSBiaWJsaW90ZWNhLCBhdHJpYnV0byAqKlVzYV9Db21wdXRhZG9yX0JpYmxpb3RlY2EqKiwgbsOjbyB0ZW0gcmVsZXbDom5jaWEgbmEgb3DDp8OjbyBwb3IgY3Vyc2FyIGNvbXB1dGHDp8Ojby4KClVzYXIgbyBjb21wdXRhZG9yIGVtIHVtICpDZW50cm8gZGUgSW5jbHVzw6NvIERpZ2l0YWwqIHRlbSB1bSBlZmVpdG8gcG9zaXRpdm8gc2VtZWxoYW50ZSBhIHVzYXIgZW0gdW1hICpMYW4gSG91c2UqLCBtb3ZlbmRvIGEgdm9udGFkZSBkYXMgYWx1bmFzIHBhcmEgYSBjacOqbmNpYSBkYSBjb21wdXRhw6fDo28uCgpPIHVzbyBkZSBhcGxpY2HDp8O1ZXMgZGUgZXNjcml0w7NyaW8sIGNvbW8gKmVkaXRvcmVzIGRlIHRleHRvKiwgKnBsYW5pbGhhcyBlbGV0csO0bmljYXMqIGUgKmVkaXRvcmVzIGRlIGltYWdlbnMqIG7Do28gdGVtIGltcGFjdG8gbmEgZXNjb2xoYSBkbyBjdXJzbyBkZSBjb21wdXRhw6fDo28uCgpDb250dWRvLCBvIHVzbyBkZSAqYmFuY28gZGUgZGFkb3MqIGUgYSBjcmlhw6fDo28gZGUgKnByb2dyYW1hcyBkZSBjb21wdXRhZG9yKiB0ZW0gaW5mbHXDqm5jaWEgcG9zaXRpdmEgbmEgZGVjaXPDo28gcG9yIGN1cnNhciBjacOqbmNpYSBkYSBjb21wdXRhw6fDo28uCgpPICoqbsOjbyoqIHVzbyBkZSAqaW50ZXJuZXQqLCAqcmVkZXMgc29jaWFpcyogZSAqZS1tYWlsKiBtb3RpdmEgYXMgZXN0dWRhbnRlcyBhIG9wdGFyIHBlbG8gY3Vyc28gZGUgY29tcHV0YcOnw6NvLgoKTyB1c28gZGUgam9nb3MgZGUgY29tcHV0YWRvciwgYXRyaWJ1dG8gKipVc2FfSm9nb3MqKiwgbsOjbyB0ZW0gcmVsZXbDom5jaWEgbmEgZXNjb2xoYSBkbyBjdXJzbyBkZSBjb21wdXRhw6fDo28uCgoqRGVzZW52b2x2ZXIgcMOhZ2luYXMgd2ViKiBlICp1dGlsaXphciBvdXRyb3Mgc29mdHdhcmVzKiB0ZW0gdW1hIHBlcXVlbmEgcmVsZXbDom5jaWEgbmEgZXNjb2xoYSBkbyBjdXJzbyBkZSBjb21wdXRhw6fDo28uCgpJcmVtb3MgYWdvcmEgY3JpYXIgdW0gbW9kZWxvIGRlIGFuw6FsaXNlIGRlIHZhcmnDom5jaWEgbGV2YW5kbyBlbSBjb25zaWRlcmHDp8OjbyB0b2RhcyBhcyB2YXJpw6F2ZWlzIGRvIHF1ZXN0aW9uw6FyaW8sIGFkb3RhbmRvIHVtYSBhYm9yZGFnZW0gKnRvcC1kb3duKiwgaXN0byDDqSwgaXRlcmFuZG8gc29icmUgbyBtb2RlbG8gZSByZXRpcmFuZG8gYXMgdmFyacOhdmVpcyBtZW5vcyBzaWduaWZpY2F0aXZhcywgYXTDqSBxdWUgdG9kYXMgYXMgdmFyacOhdmVpcyBzZWphbSBzaWduaWZpY2F0aXZhcy4KCmBgYHtyfQp0ZW1wIDwtIHJlc3Bvc3Rhc1ssIGMoMSwgMzpuY29sKHJlc3Bvc3RhcykpXQoKZml0IDwtIGFvdihvcGNhb19jb21wdXRhY2FvIH4gLiwgZGF0YSA9IHRlbXApCmtuaXRfcHJpbnQoYW5vdmEoZml0KSkKcGFyKG1mcm93PWMoMiwyKSkKcGxvdChmaXQpCmBgYAoKCk5vdm8gbW9kZWxvLCByZXRpcmFuZG8gdmFyacOhdmVsICoqVXNhX0NvbXB1dGFkb3JfQmlibGlvdGVjYSoqOgoKYGBge3J9CnRlbXAkVXNhX0NvbXB1dGFkb3JfQmlibGlvdGVjYSA8LSBOVUxMCgpmaXQgPC0gYW92KG9wY2FvX2NvbXB1dGFjYW8gfiAuLCBkYXRhID0gdGVtcCkKa25pdF9wcmludChhbm92YShmaXQpKQpwYXIobWZyb3c9YygyLDIpKQpwbG90KGZpdCkKYGBgCgpSZXRpcmFuZG8gdmFyacOhdmVsICoqVXNhX0VtYWlsKio6CgpgYGB7cn0KdGVtcCRVc2FfRW1haWwgPC0gTlVMTAoKZml0IDwtIGFvdihvcGNhb19jb21wdXRhY2FvIH4gLiwgZGF0YSA9IHRlbXApCmtuaXRfcHJpbnQoYW5vdmEoZml0KSkKcGFyKG1mcm93PWMoMiwyKSkKcGxvdChmaXQpCmBgYAoKUmV0aXJhbmRvIHZhcmnDoXZlbCAqKlVzYV9FZGl0b3JfVGV4dG8qKjoKCmBgYHtyfQp0ZW1wJFVzYV9FZGl0b3JfVGV4dG8gPC0gTlVMTAoKZml0IDwtIGFvdihvcGNhb19jb21wdXRhY2FvIH4gLiwgZGF0YSA9IHRlbXApCmtuaXRfcHJpbnQoYW5vdmEoZml0KSkKcGFyKG1mcm93PWMoMiwyKSkKcGxvdChmaXQpCmBgYAoKUmV0aXJhbmRvIHZhcmnDoXZlbCAqKlVzYV9PdXRyb3NfU29mdHdhcmVzKio6CgpgYGB7cn0KdGVtcCRVc2FfT3V0cm9zX1NvZnR3YXJlcyA8LSBOVUxMCgpmaXQgPC0gYW92KG9wY2FvX2NvbXB1dGFjYW8gfiAuLCBkYXRhID0gdGVtcCkKa25pdF9wcmludChhbm92YShmaXQpKQpwYXIobWZyb3c9YygyLDIpKQpwbG90KGZpdCkKYGBgCgpSZXRpcmFuZG8gdmFyacOhdmVsICoqVXNhX0NyaWF0aXZpZGFkZSoqOgoKYGBge3J9CnRlbXAkVXNhX0NyaWF0aXZpZGFkZSA8LSBOVUxMCgpmaXQgPC0gYW92KG9wY2FvX2NvbXB1dGFjYW8gfiAuLCBkYXRhID0gdGVtcCkKa25pdF9wcmludChhbm92YShmaXQpKQpwYXIobWZyb3c9YygyLDIpKQpwbG90KGZpdCkKYGBgCgpSZXRpcmFuZG8gdmFyacOhdmVsICoqVXNhX0NvbXB1dGFkb3JfVHJhYmFsaG8qKjoKCmBgYHtyfQp0ZW1wJFVzYV9Db21wdXRhZG9yX1RyYWJhbGhvIDwtIE5VTEwKCmZpdCA8LSBhb3Yob3BjYW9fY29tcHV0YWNhbyB+IC4sIGRhdGEgPSB0ZW1wKQprbml0X3ByaW50KGFub3ZhKGZpdCkpCnBhcihtZnJvdz1jKDIsMikpCnBsb3QoZml0KQpgYGAKClJldGlyYW5kbyB2YXJpw6F2ZWwgKipVc2FfUmVkZXNfU29jaWFpcyoqOgoKYGBge3J9CnRlbXAkVXNhX1JlZGVzX1NvY2lhaXMgPC0gTlVMTAoKZml0IDwtIGFvdihvcGNhb19jb21wdXRhY2FvIH4gLiwgZGF0YSA9IHRlbXApCmtuaXRfcHJpbnQoYW5vdmEoZml0KSkKcGFyKG1mcm93PWMoMiwyKSkKcGxvdChmaXQpCmBgYAoKUmV0aXJhbmRvIHZhcmnDoXZlbCAqKlVzYV9Db21wdXRhZG9yX0Nhc2FfUGFyZW50ZXMqKjoKCmBgYHtyfQp0ZW1wJFVzYV9Db21wdXRhZG9yX0Nhc2FfUGFyZW50ZXMgPC0gTlVMTAoKZml0IDwtIGFvdihvcGNhb19jb21wdXRhY2FvIH4gLiwgZGF0YSA9IHRlbXApCmtuaXRfcHJpbnQoYW5vdmEoZml0KSkKcGFyKG1mcm93PWMoMiwyKSkKcGxvdChmaXQpCmBgYAoKUmV0aXJhbmRvIHZhcmnDoXZlbCAqKlVzYV9FZGl0b3JfSW1hZ2VtKio6CgpgYGB7cn0KdGVtcCRVc2FfRWRpdG9yX0ltYWdlbSA8LSBOVUxMCgpmaXQgPC0gYW92KG9wY2FvX2NvbXB1dGFjYW8gfiAuLCBkYXRhID0gdGVtcCkKa25pdF9wcmludChhbm92YShmaXQpKQpwYXIobWZyb3c9YygyLDIpKQpwbG90KGZpdCkKYGBgCgpSZXRpcmFuZG8gdmFyacOhdmVsICoqVXNhX0ludGVybmV0Kio6CgpgYGB7cn0KdGVtcCRVc2FfSW50ZXJuZXQgPC0gTlVMTAoKZml0IDwtIGFvdihvcGNhb19jb21wdXRhY2FvIH4gLiwgZGF0YSA9IHRlbXApCmtuaXRfcHJpbnQoYW5vdmEoZml0KSkKcGFyKG1mcm93PWMoMiwyKSkKcGxvdChmaXQpCmBgYAoKUmV0aXJhbmRvIHZhcmnDoXZlbCAqKlBvdWNvX0xhemVyKio6CgpgYGB7cn0KdGVtcCRQb3Vjb19MYXplciA8LSBOVUxMCgpmaXQgPC0gYW92KG9wY2FvX2NvbXB1dGFjYW8gfiAuLCBkYXRhID0gdGVtcCkKa25pdF9wcmludChhbm92YShmaXQpKQpwYXIobWZyb3c9YygyLDIpKQpwbG90KGZpdCkKYGBgCgpSZXRpcmFuZG8gdmFyacOhdmVsICoqRGVzZW52b2x2ZV9QYWdpbmFzX1dlYioqOgoKYGBge3J9CnRlbXAkRGVzZW52b2x2ZV9QYWdpbmFzX1dlYiA8LSBOVUxMCgpmaXQgPC0gYW92KG9wY2FvX2NvbXB1dGFjYW8gfiAuLCBkYXRhID0gdGVtcCkKa25pdF9wcmludChhbm92YShmaXQpKQpwYXIobWZyb3c9YygyLDIpKQpwbG90KGZpdCkKYGBgCgpSZXRpcmFuZG8gdmFyacOhdmVsICoqVXNhX1BsYW5pbGhhX0VsZXRyw7RuaWNhKio6CgpgYGB7cn0KdGVtcCRVc2FfUGxhbmlsaGFfRWxldHLDtG5pY2EgPC0gTlVMTAoKZml0IDwtIGFvdihvcGNhb19jb21wdXRhY2FvIH4gLiwgZGF0YSA9IHRlbXApCmtuaXRfcHJpbnQoYW5vdmEoZml0KSkKcGFyKG1mcm93PWMoMiwyKSkKcGxvdChmaXQpCmBgYAoKUmV0aXJhbmRvIHZhcmnDoXZlbCAqKlVzYV9Db21wdXRhZG9yX0Nhc2FfQW1pZ29zKio6CgpgYGB7cn0KdGVtcCRVc2FfQ29tcHV0YWRvcl9DYXNhX0FtaWdvcyA8LSBOVUxMCgpmaXQgPC0gYW92KG9wY2FvX2NvbXB1dGFjYW8gfiAuLCBkYXRhID0gdGVtcCkKa25pdF9wcmludChhbm92YShmaXQpKQpwYXIobWZyb3c9YygyLDIpKQpwbG90KGZpdCkKYGBgCgpSZXRpcmFuZG8gdmFyacOhdmVsICoqVXNhX0pvZ29zKio6CgpgYGB7cn0KdGVtcCRVc2FfSm9nb3MgPC0gTlVMTAoKZml0IDwtIGFvdihvcGNhb19jb21wdXRhY2FvIH4gLiwgZGF0YSA9IHRlbXApCmtuaXRfcHJpbnQoYW5vdmEoZml0KSkKcGFyKG1mcm93PWMoMiwyKSkKcGxvdChmaXQpCmBgYAoKCgpPIHByw7N4aW1vIHBhc3NvIMOpIGlkZW50aWZpY2FyIHNlIGjDoSBjb21iaW5hw6fDtWVzIGRlIGF0cmlidXRvcyBxdWUgZXhwbGlxdWVtIGVzc2Egb3DDp8Ojby4gUGFyYSBpc3NvIHNlcsOhIHV0aWxpemFkbyBvIGFsZ29yaXRtbyBBcHJpb3JpIGRlIG1pbmVyYcOnw6NvIGRlIHJlZ3JhcyBkZSBhc3NvY2lhw6fDo28uCgpgYGB7cn0KIyByZWdyYXMgPSBhcHJpb3JpKGRhdGEgPSByZXNwb3N0YXNbLCAyOjM2XSwgcGFyYW1ldGVyID0gbGlzdChtaW5sZW49Miwgc3VwcD0wLjEsIGNvbmY9MC44LCBtYXh0aW1lPTYwMCkpCgojIHJlZ3Jhcy5vcmRlbSA8LSBzb3J0KHJlZ3JhcywgYnk9ImxpZnQiKQoKIyBFbmNvbnRyYW5kbyBhcyByZWdyYXMgcmVkdW5kYW50ZXMKIyBzdWJzZXQubWF0cml4IDwtIGlzLnN1YnNldChyZWdyYXMub3JkZW0sIHJlZ3Jhcy5vcmRlbSkKIyBzdWJzZXQubWF0cml4W2xvd2VyLnRyaShzdWJzZXQubWF0cml4LCBkaWFnID0gVCldID0gTkEKCiMgVmVqYW0gbyBxdWUgbW9udGFtb3MgYXTDqSBhcXVpCiMgc3Vic2V0Lm1hdHJpeFsxOjUsMTo1XQoKCiMgd3JpdGUocmVncmFzLCBmaWxlPSJyZWdyYXMudHh0IikKYGBgCgo=